bit_operator.c
/*------------------------------------------------------------------------------
* Title: bit_operator
* Project: bit_operator
* Source: bit_operator.c
* Author: B.G
* Group: B.G
* Created: 13:43 2009/11/07
* Last Modified: 13:43 2009/11/07
* ---------------------------------------------------------------------------*/
/* ヘッダファイルのインクルード */
#include <stdio.h> /* stdio.hのインクルード */
/* main関数 */
int main(void){
/* 変数の宣言 */
unsigned char result_or; /* 2つのビット値の論理和(OR)の結果を格納するunsigned char型変数result_or */
unsigned char result_and; /* 2つのビット値の論理積(AND)の結果を格納するunsigned char型変数result_and */
unsigned char result_not; /* ビット値の否定(NOT)の結果を格納するunsigned char型変数result_not */
unsigned char result_xor; /* 2つのビット値の排他的論理和(XOR)の結果を格納するunsigned char型変数result_xor */
unsigned char result_rshift; /* ビット値の右シフト(RSHIFT)の結果を格納するunsigned char型変数result_rshift */
unsigned char result_lshift; /* ビット値の左シフト(LSHIFT)の結果を格納するunsigned char型変数result_lshift */
unsigned char b1; /* 値1を格納するunsigned char型変数b1 */
unsigned char b2; /* 値2を格納するunsigned char型変数b2 */
/* 値の初期化 */
b1 = 5; /* b1に5をセットする(5 = 00000101) */
b2 = 3; /* b2に3をセットする(3 = 00000011) */
/* 論理和 */
result_or = b1 | b2; /* (00000101 | 00000011) = (00000111) */
printf("5(00000101) | 3(00000011) = %u(= 00000111)\n", result_or); /* 結果をprintfで表示 */
/* 論理積 */
result_and = b1 & b2; /* (00000101 & 00000011) = (00000001) */
printf("5(00000101) & 3(00000011) = %u(= 00000001)\n", result_and); /* 結果をprintfで表示 */
/* 否定 */
result_not = ~b1; /* (~00000101) = (11111010) */
printf("~5(00000101) = %u(= 11111010)\n", result_not); /* 結果をprintfで表示 */
/* 排他的論理和 */
result_xor = b1 ^ b2; /* (00000101 ^ 00000011) = (00000110) */
printf("5(00000101) ^ 3(00000011) = %u(= 00000110)\n", result_xor); /* 結果をprintfで表示 */
/* 右シフト(右に2つ論理シフト) */
result_rshift = b1 >> 2; /* (00000101 >> 2) = (00000001) */
printf("5(00000101) >> 2 = %u(= 00000001)\n", result_rshift); /* 結果をprintfで表示 */
/* 左シフト(左に2つ論理シフト) */
result_lshift = b1 << 2; /* (00000101 << 2) = (00010100) */
printf("5(00000101) << 2 = %u(= 00010100)\n", result_lshift); /* 結果をprintfで表示 */
/* プログラムの終了 */
return 0;
}
最終更新:2010年07月08日 13:09