我正在寫一個簡單的程序來將整數(0和2147483647之間)轉換爲32位二進制。將整數轉換爲32位二進制 - 輸出反向
不幸的是,輸出是回來了。例如,而不是2 = 10
,我得到2 = 01
。
#include<stdio.h>
int main()
{
int finishFlag = 0; //0 = false, 1 = true
while (finishFlag != 1)
{
int a[36],
n = 0,
i = 0, j = 0;
printf("Enter a number between 0 and 2147483647: ");
scanf("%d", &n);
if (n > 0 && n <= 2147483647)
{
printf("%d expressed as a 32-bit binary number is: ", n);
for (i = 0; i < 36; i++)
{
if (n == 1)
{
a[i] = 1;
break;
}
else
{
a[i] = n % 2;
n = n/2;
}
}
for (j = 0; j <= i; j++)
{
printf("%d", a[j]);
}
printf("\n");
finishFlag = 1;
}
else
printf("\n** Not a valid input, try again ***\n");
}
return 0;
}
此外,我將如何顯示0的其餘部分(包括每第8個數字之間的空格)?我需要輸出看起來像這樣的整數'2'
00000000 00000000 00000000 00000010
@immibis:我敢肯定Goush知道這一點。 – 2015-02-23 20:51:11
@ScottHunter你會驚訝有多少人不會。 – immibis 2015-02-23 20:52:17
@immibis:然而,他/她發佈了一個問題,詢問如何解決這個問題。知道存在問題並知道如何解決它(或者爲什麼你的代碼沒有說出你的想法)是有區別的。 – 2015-02-23 22:02:07