2 sinat 31601333 sinat_31601333 于 2016.04.23 22:26 提问

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

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

5个回答

caozhy
caozhy   Ds   Rxr 2016.04.23 23:35
 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

NK_test
NK_test   Rxr 2016.04.23 23:40

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

q610098308
q610098308   2016.04.23 23:16

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

CSDNXIAON
CSDNXIAON   2016.04.23 22:32

int转换成二进制字符串
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

q610098308
q610098308   2016.04.23 22:40

直接格式化成string format;

sinat_31601333
sinat_31601333 怎么写呢。。我要二进制的(,,• ₃ •,,)
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!