2012年5月3日木曜日

開発環境

『実践プログラミング 第3版』 (Steve Oualline (著)、 望月 康司 (監修) (翻訳)、 谷口 功 (翻訳)、 オライリー・ジャパン、1998年、ISBN978-4900900646) の11章(ビット演算)11.9(プログラミング実習)j実習11-6.を解いてみる。

実習11-6.

コード(TextWrangler)

#include <stdio.h>

int main(){
  short int a,b;
  int count, i;
  a = (1 << 6) | 
      (1 << 4) | 
      (1 << 2) |
      (1 << 1);
  b = 0;
  count = 0;
  for(i = 0 ; i < 8 ; i++){
    if( (a & (1 << i )) != 0){
      count += 1;
    }
  }
  for( i = 0; i < count; i++){
    b |= ( 1 << (7 - i) );
  }
  printf("%d: %d\n", a, b);
  return (0);
}

入出力結果(Terminal)

$ cc -g -o sample sample.c
$ ./sample
86: 240
$

86: 01010110(2進数)、240: 11110000(2進数)

少しずつビット演算子に慣れてきた。ちょっとずつだけど理解できてきたかも。

0 コメント:

コメントを投稿