【发布时间】:2020-05-12 14:47:37
【问题描述】:
我正在制作一个给定 int 的函数,使其二进制补码并将其转换为 32 位数字
问题是我想每 4 位添加空间
程序示例是“输入 720,输出:0000 0000 0000 0000 0000 0010 1101 0000”
我尝试制作该函数,但我不知道如何每 4 个数字添加一个“”字符。
有什么想法吗?
我的功能是:
char temp[32];
char* toBinary(int num) {
int mask = 1 << (31);
char res[39];
for (short i = 0; i <=32; i++) {
res[i] = (num & mask ? '1' : '0');
num <<= 1;
if(i !=0 && i % 4 ==0) // push a space ;
}
return strcpy(temp,res);
}
谢谢!
【问题讨论】:
-
在你的循环中加入一个计数器。输出一个数字后,计数器递增。如果计数器为 4,则将其重置为 0 并打印一个空格。还有其他方法。但是在
temp中,您需要超过 32 个字符。 -
@Jabberwocky 你好,你能解释一下吗?谢谢
-
你面前排着二十个人。你想给每四个人一美元。你会怎么做?你数他们 1,2,3,4 给一美元,1,2,3,4 给一美元,1,2,3,4 给一美元等等。
标签: c