C语言编程:由键盘输入一个小于256的十进制整数,然后将该数转换成八位的二进制形式输出。

2024-11-17 21:51:14
推荐回答(5个)
回答(1):

#include
int main()
{
int n,i; /* n放输入数据; i循环变量 */
char a[9], *p; /* a放转换好的字符串;p字符串指针,加快操作速度*/

scanf("%d",&n);

p=a+8; *p--='\0'; /*填入字符串结束符,同时将指向二进制最低位*/
for(i = 8; i>0; i--)
{
*p--=(n&1)+'0';/*求位值,加'0'则得到对应的ASCII码*/
n>>=1; /*移位以便高位求位值*/
}
printf("%s\n",a); /* 输出转换好的字符串 */
}

特点:1。本程序采用n&1求位值,用+'0'求ASCII,用移位操作
2。字符串准备好后集中输出
3。用备用指针p代替数组操作
所以:速度快,比较适合再单片机等硬件电路中使用

回答(2):

#include
#include
void main()
{
int n=0,i;
while(n>=256 || n<=0) scanf("%d",&n);
for(i=0;i<8;i++) printf("%d",(n & (0x80>>i))>0);
getch();
}

回答(3):

cainiao

回答(4):

vb就ESAY

回答(5):

菜鸟菜回答
#include
int main(){
int n,b,i;
int a[10] = {0};
int count = 0;

scanf("%d",&n);

for(i = 0; b!=1; i++,count++){
a[i] = n%2;
b = n/2;
n = b;
}
a[count] = 1;
for(i = 7; i>=0; i--){

printf("%d",a[i]);
}
return;
}