C言語で2進数を表示させる・改
C言語で2進数を表示させる - Shammerismの内容を少し変更。左の0は表示させないようにしたのと、引数をlong型に変更。
void print_as_b_value(const long value){ unsigned long bit = (1L << (sizeof(long) * 8 - 1)); int i = 0; int x = 0; for( ; bit != 0 ; bit >>= 1, ++i ){ if( i != 0 && i % 4 == 0 && x ){ putchar('.'); } if( value & bit ){ putchar('1'); x = 1; } else { if ( x ) putchar('0'); } } printf("\n"); }
以前のバージョンは以下のように不要な0が表示されるようになっていたが、
# ./a.out 1 0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0001 #
今回のは以下のように不要な0を表示させなくした。
# ./a.out 1 1 #
これと16進数を10進数に戻す関数 - Shammerismを組み合わせて、16進数を2進数で表示させるようなものを作りたい。