開発環境
- 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-6を解いてみる。
実習11-6.
コード(TextWrangler)
#include <stdio.h>
int main(){
unsigned int ch, i, j, result;
char line[100];
int count;
printf("数値を入力: ");
fgets(line, sizeof(line), stdin);
sscanf(line, "%d", &ch);
count = 0;
for(i = 1; i < 256; i = (i << 1)){
if((ch & i) != 0){
count++;
}
}
result = 0;
for(j = 7; count > 0 ; j--, count--){
result |= (1 << j);
}
printf("全てのビットを左端までシフト: %d\n", result);
return (0);
}
入出力結果(Terminal)
$ cc -g -o sample sample.c $ ./sample 数値を入力: 86 全てのビットを左端までシフト: 240 $
メモ: 符号ビットを考えるとまだよく理解できてなくて分からなくなったので、とりあえず符号無し(unsigned)バージョンを完成してみた。
0 コメント:
コメントを投稿