- 328 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 21:57:20 ]
- >>326 問題1−2
#include<stdio.h> char *ul2a(char buf[40], unsigned long value){ int i; char *p; for(i=31,p=buf;i>=0;i--){ *p++=((value>>i)&1)+'0'; if(i%4==0) *p++=' '; } *--p='\0'; return buf; } int main(int argc, char *argv[]){ char buf[40]; unsigned long x=0, y=0; printf("符号なし32bit整数2つを入力してください.\n"); scanf("%lu %lu", &x, &y); printf("%lu は2進表示で %s ,\n", x, ul2a(buf, x)); printf("%lu は2進表示で %s です.\n", y, ul2a(buf, y)); printf("~%lu は2進表示で %s ,\n", x, ul2a(buf, ~x)); printf("~%lu は2進表示で %s です.\n", y, ul2a(buf, ~y)); printf("%lu << 1は2進表示で %s ,\n", x, ul2a(buf, x<<1)); printf("%lu >> 1は2進表示で %s です.\n", y, ul2a(buf, y>>1)); printf("%lu & %lu は2進表示で %s です.\n", x, y, ul2a(buf, x&y)); printf("%lu | %lu は2進表示で %s です.\n", x, y, ul2a(buf, x|y)); printf("%lu ^ %lu は2進表示で %s です.\n", x, y, ul2a(buf, x^y)); return 0; }
|

|