C語言 將int型資料以二進位制形式輸出
阿新 • • 發佈:2019-02-04
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
printf("N=");
int n,i;
scanf("%d",&n);
int len=sizeof(int)*8; //int型所佔資料寬度
for(i=0;i<len;i++)
{
}
printf("\n%d\n",n);
//Another method
for(i=0;i<len;i++)
{
putchar('0'+((unsigned)(n&(1<<(len-1)))>>len-1)); //將1左移,然後和n做按位與運算,最後邏輯右移,從高位到低位輸出二進位制
n<<=1; //上邊的一句總是對最高位進行處理,所以,這裡就對n左移一位嘍
}
printf("\n%d\n",n);
}
#include <stdlib.h>
int main(void)
{
printf("N=");
int n,i;
scanf("%d",&n);
int len=sizeof(int)*8; //int型所佔資料寬度
for(i=0;i<len;i++)
{
putchar('0'+((unsigned)(n<<i)>>(len-1))); //先左移,再邏輯右移,就把二進位制從高位到低位輸出了
// printf("%d",((unsigned)(n<<i)>>(len-1))); //也可以這樣輸出
printf("\n%d\n",n);
//Another method
for(i=0;i<len;i++)
{
putchar('0'+((unsigned)(n&(1<<(len-1)))>>len-1)); //將1左移,然後和n做按位與運算,最後邏輯右移,從高位到低位輸出二進位制
n<<=1; //上邊的一句總是對最高位進行處理,所以,這裡就對n左移一位嘍
}
printf("\n%d\n",n);
}