昨晩急に2進数で表示するプログラムを思い付いたので実装したものを軽く手直し。要は基数となる2で割り続けて、余りを文字列の末尾から逆順に先頭まで埋めていくだけ。引数は変換元の値と、変換先の文字列と、桁数を指定して呼び出すと、変換先の文字列を返すのでprintf等の引数にそのまま使うことも出来るってカンジ。
基数変えれば何進数にでも対応出来るし、桁区切りを指定してスペースやカンマで区切ったりとか用意に手を加えられるけど、とりあえず使えるので一旦これで。
char *binstr(unsigned long long n,char *s,int m) { s[m]='\0'; while(m>0) { m--; if((n%2)==0) s[m]='0'; else s[m]='1'; n=n/2; } return s; } int main() { unsigned char c; char s[9]; c=0xfe; printf("%02X=%s\n",c,binstr(c,s,8)); }
TSパケットの確認をするプログラムは、PTSとDTSの組み立て部分のミスを発見したので修正。先頭と末尾の時間差から恐らくちゃんと正しい値が求められているっぽいことを確認。次回はTOTの取得を加えて、先頭切れが発生していないか確認する方向で。
定時後、第二神明で帰宅。晩御飯は豚肉の玉子焼きとわかめとおあげの味噌汁。
博多豚骨ラーメンズ見終わったトコでお茶入れてもらって一服。その後、春新番組タイマーを直近の分だけ各地の録画PCにタイマー入れる。あとは帰ってきてから来週にでも。