2012年10月15日月曜日

開発環境

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

実習11-5.

コード(TextWrangler)

#include <stdio.h>

int main(){
  long int a, b, i;
  int array[8];
  char line[100];
  printf("32ビット整数型(long int)を入力: ");
  fgets(line, sizeof(line), stdin);
  sscanf(line, "%ld", &a);
  printf("8つの4ビット値に分割\n");
  
  for(b = 0, i = 0; b < 32; b += 4, i++){
    array[i] = ((a >> b) & 15);
  }
  for(i = 7; i >= 0; i--){
    printf("%d ", array[i]);
  }
  printf("\n");
  return (0);
}

入出力結果(Terminal)

$ cc -g -o sample sample.c
$ ./sample
32ビット整数型(long int)を入力: 1
8つの4ビット値に分割
0 0 0 0 0 0 0 1 
$ ./sample
32ビット整数型(long int)を入力: 2
8つの4ビット値に分割
0 0 0 0 0 0 0 2 
$ ./sample
32ビット整数型(long int)を入力: 16
8つの4ビット値に分割
0 0 0 0 0 0 1 0 
$ ./sample
32ビット整数型(long int)を入力: 2147483647
8つの4ビット値に分割
7 15 15 15 15 15 15 15 
$ ./sample
32ビット整数型(long int)を入力: -2147483648
8つの4ビット値に分割
8 0 0 0 0 0 0 0 
$ ./sample
32ビット整数型(long int)を入力: -1
8つの4ビット値に分割
15 15 15 15 15 15 15 15 
$

0 コメント:

コメントを投稿