開発環境
- OS X Lion - Apple(OS)
- TextWrangler(Text Editor) (BBEditの無料、light版)
- 言語: C
- コンパイラ: UNIX ccコンパイラ (汎用UNIX)
『実践プログラミング 第3版』 (Steve Oualline (著)、 望月 康司 (監修) (翻訳)、 谷口 功 (翻訳)、 オライリー・ジャパン、1998年、ISBN978-4900900646) の11章(ビット演算)11.8(ビットマップグラフィックス)設問11-2を解いてみる。
設問11-2.
short intは16ビット、chは8ビットだから、一番眼のループは動作するけど2番目のループは符号の影響ビットの影響を受けて上手く動作しない。ということで、signed charではなくunsigned charにすればいい。
修正。
コード(TextWrangler)
#include <stdio.h> int main(){ short int i; unsigned char ch; for(i = 0x80; i!=0 ; i = (i >> 1)){ printf("i is %x (%d)\n", i, i); } for(ch = 0x80; ch!= 0; ch = (ch >>1)){ printf("ch is %x (%d)\n", ch, ch); } }
入出力結果(Terminal)
$ cc -g -o sample sample.c $ ./sample i is 80 (128) i is 40 (64) i is 20 (32) i is 10 (16) i is 8 (8) i is 4 (4) i is 2 (2) i is 1 (1) ch is 80 (128) ch is 40 (64) ch is 20 (32) ch is 10 (16) ch is 8 (8) ch is 4 (4) ch is 2 (2) ch is 1 (1) $
0 コメント:
コメントを投稿