解決済みのQ&A
ベストアンサーに選ばれた回答
n bit の正の整数 a が入力されたとする. a を 2 進法で表せば, a は
..........a(n-1) a(n-2) ・・・ a(1) a(0)..........( a(i) == 0 又は a(i) == 1 )
という形をしている. そこで,
a(n-1) の値が 1 か 0 かを調べて, それを出力する,
a(n-2) の値が 1 か 0 かを調べて, それを出力する,
...................................:
a(0) の値が 1 か 0 かを調べて, それを出力する,
というように処理すれば良い.
#include <stdio.h>
main(){
unsigned i;
unsigned a; /* 正の整数 */
int n=8*sizeof(a); /* aのサイズ[bit] */
scanf("%d",&a);
for(i=1<<(n-1);i>0;i>>=1) /* a(n-1),a(n-2),…,a(0)の値を調べる */
printf("%d",(a&i)?1:0);
printf("\n");
}
- 違反報告
- 編集日時:2012/5/25 01:56:25
- 回答日時:2012/5/25 01:55:52
ベストアンサー以外の回答
(1件中1〜1件)
ii3pvy63さん
実装例です。
#include <stdio.h>
int ToBin(int n) {
return n == 0 ? 0 : ToBin(n / 2) * 10 + n % 2;
}
int main(void) {
int n;
printf("正の整数を入力:");
scanf("%d", &n);
printf("%dを2進数で表すと%d\n", n, ToBin(n));
return 0;
}
- 違反報告
- 回答日時:2012/5/24 21:59:45
「stdio.h、御回答」に関する質問
- #include <stdio.h>main(){printf("Hello!!\");int i;if(fork() == 0){printf("I ...
- #include<stdio.h>int main(void){ int no; printf("金額を入力してください:"); ...
- #include <stdio.h>int main( void ){ int i, x, y; printf("¥n-----¥n"); printf...
- #include<stdio.h>int main(void){ int a,b; printf("110までの偶数を出力します\...
- #include<stdio.h>int main(void){ int seibetu; printf("あなたの性別を次の中か...