開発環境
- OS X Lion - Apple(OS)
- TextWrangler(Text Editor) (BBEditの無料、light版)
- 言語: C
- コンパイラ: UNIX ccコンパイラ (汎用UNIX)
『実践プログラミング 第3版』 (Steve Oualline (著)、 望月 康司 (監修) (翻訳)、 谷口 功 (翻訳)、 オライリー・ジャパン、1998年、ISBN978-4900900646) II部(単純なプログラミング)の11章(ビット演算)11.10(プログラミング実習)実習11-5を解いてみる。
実習11-5.
コード(TextWrangler)
#include <stdio.h> int main(){ long int a; char line[100]; long int bit; int i; while(1){ printf("32ビットの整数型(long int)を入力: "); fgets(line,sizeof(line),stdin); sscanf(line,"%ld",&a); if(a >= 0){ printf("0"); } else { printf("1"); } for(bit = (1 << 30); bit >= (1 << 28); bit = (bit >> 1)){ if((a & bit) == bit){ printf("1"); } else { printf("0"); } } printf(" "); for( i = 1 ; bit > 0 ; i++, bit = (bit >> 1)){ if((a & bit) == bit){ printf("1"); } else { printf("0"); } if(i % 4 == 0){ printf(" "); } } printf("\n"); } return (0); }
入出力結果(Terminal)
$ cc -g -o sample sample.c $ ./sample 32ビットの整数型(long int)を入力: 1 0000 0000 0000 0000 0000 0000 0000 0001 32ビットの整数型(long int)を入力: 2 0000 0000 0000 0000 0000 0000 0000 0010 32ビットの整数型(long int)を入力: 3 0000 0000 0000 0000 0000 0000 0000 0011 32ビットの整数型(long int)を入力: 4 0000 0000 0000 0000 0000 0000 0000 0100 32ビットの整数型(long int)を入力: 5 0000 0000 0000 0000 0000 0000 0000 0101 32ビットの整数型(long int)を入力: 16 0000 0000 0000 0000 0000 0000 0001 0000 32ビットの整数型(long int)を入力: -1 1111 1111 1111 1111 1111 1111 1111 1111 32ビットの整数型(long int)を入力: -2 1111 1111 1111 1111 1111 1111 1111 1110 32ビットの整数型(long int)を入力: -3 1111 1111 1111 1111 1111 1111 1111 1101 32ビットの整数型(long int)を入力: -4 1111 1111 1111 1111 1111 1111 1111 1100 32ビットの整数型(long int)を入力: -5 1111 1111 1111 1111 1111 1111 1111 1011 32ビットの整数型(long int)を入力: -6 1111 1111 1111 1111 1111 1111 1111 1010 32ビットの整数型(long int)を入力: -7 1111 1111 1111 1111 1111 1111 1111 1001 32ビットの整数型(long int)を入力: -8 1111 1111 1111 1111 1111 1111 1111 1000 32ビットの整数型(long int)を入力: -9 1111 1111 1111 1111 1111 1111 1111 0111 32ビットの整数型(long int)を入力: -10 1111 1111 1111 1111 1111 1111 1111 0110 32ビットの整数型(long int)を入力: -16 1111 1111 1111 1111 1111 1111 1111 0000 32ビットの整数型(long int)を入力: -17 1111 1111 1111 1111 1111 1111 1110 1111 32ビットの整数型(long int)を入力: ^C $
0 コメント:
コメントを投稿