C++下int型转换成固定长度二进制字符串

我想把int型的数据转换成32位的01字符串
用itoa函数的话,前面的0好像会被忽略掉,有什么简单的函数可以用?

0

4个回答

直接格式化成string format;

0
sinat_31601333
Mokoa 怎么写呢。。我要二进制的(,,• ₃ •,,)
大约 3 年之前 回复

可能没有直接的方法,你可以再格式化一下;
char str2[33]= {0};
sprintf(str2, "%032s", str);

0
 int main()
{
char str[] = "00000000000000000000000000000000";
int n = 1234;
for (int i = 0; i < 32; i++) if (((1 << i) & n) == (1 << i)) str[31 - i] = '1';
printf("%s", str);
}

00000000000000000000010011010010

http://codepad.org/2oW9VHFj

0

使用位操作实现,例如 int num,每次进行num与1(手机打不出与..你应该明白),之后num=num>>1,也就是右移一位,重复32次即可

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!