#include<stdio.h>
int main()
{
int n,i,k;
printf("輸入一個十進制整數");
scanf("%d",&n);
printf("%d 轉換成二進制為:\n",n);
for(i=31;i>=0;i--)
{
k = n >> i;
if(k&1)
printf("1");
else
printf("0");
}
printf("\n");
}
----------------------------------------------------------------------------------
方法二.
#include <stdio.h>
void i2b(int);
int main ( void )
{
int n;
printf("輸入一個十進制整數");
scanf("%d",&n);
i2b(n);
return 0;
}
void i2b(int n)
{
unsigned int mask=0x80000000; /*------------------>32bit*/
int i;
printf("%d 轉換成二進制為:\n",n);
for(i=31;i>=0;i--){
printf("%c",(n&mask)?'1':'0'); /* AND 其中一個是0就0 類似"乘號" 搭配 三元運算子 */
n<<=1; /* n=n<<1 */
}
}
表格轉自:http://www.numberplanet.com/number/80000000/
| binary | 10000000000000000000000000000000 |
| binary bytes | 10000000 00000000 00000000 00000000 |
| decimal | 2147483648 |
| decimal (formatted) | 2,147,483,648 |
| dotted decimal | 128.0.0.0 |
| hex bytes | 80 00 00 00 |
| hexidecimal | 80000000 |
| IPv6 | ::8000:0 |
| octal | 20000000000 |

沒有留言:
張貼留言