编写一个程序,要求输入一个整数,将它在内存中二进制表示的每一位转换成为对应的数字字符,存放到一个字
答案:2 悬赏:30 手机版
解决时间 2021-11-30 22:44
- 提问者网友:感性作祟
- 2021-11-30 09:24
编写一个程序,要求输入一个整数,将它在内存中二进制表示的每一位转换成为对应的数字字符,存放到一个字
最佳答案
- 五星知识达人网友:長槍戰八方
- 2021-11-30 09:33
#include
const size_t MAXSIZE = 8 * sizeof(int);
char *toBinary(int n,char bin[]) {
int i;
for(i = 0; i < MAXSIZE; ++i)
bin[MAXSIZE - 1 - i] = (n & (1 << i)) ? '1' : '0';
bin[MAXSIZE] = 0;
return bin;
}
int main() {
int n;
char bin[MAXSIZE + 1];
printf("输入一个整数:
");
while(scanf("%d",&n) == 1) {
printf("%s
",toBinary(n,bin));
printf("输入一个整数(q to quit):
");
}
return 0;
}
const size_t MAXSIZE = 8 * sizeof(int);
char *toBinary(int n,char bin[]) {
int i;
for(i = 0; i < MAXSIZE; ++i)
bin[MAXSIZE - 1 - i] = (n & (1 << i)) ? '1' : '0';
bin[MAXSIZE] = 0;
return bin;
}
int main() {
int n;
char bin[MAXSIZE + 1];
printf("输入一个整数:
");
while(scanf("%d",&n) == 1) {
printf("%s
",toBinary(n,bin));
printf("输入一个整数(q to quit):
");
}
return 0;
}
全部回答
- 1楼网友:你哪知我潦倒为你
- 2021-11-30 09:40
用putchar时它会把i+48所对应的字符也输出来,你把a[j++]=putchar(i+48)改成a[j++]=i+48即可追问a是字符数组啊追答a里面存放的是字符所对应的ascii码,本质上也是一个数,看你怎样输出
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯