问题描述
- C++下int型转换成固定长度二进制字符串
-
我想把int型的数据转换成32位的01字符串
用itoa函数的话,前面的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
解决方案二:
使用位操作实现,例如 int num,每次进行num与1(手机打不出与..你应该明白),之后num=num>>1,也就是右移一位,重复32次即可
解决方案三:
可能没有直接的方法,你可以再格式化一下;
char str2[33]= {0};
sprintf(str2, "%032s", str);
解决方案四:
int转换成二进制字符串
解决方案五:
直接格式化成string format;
时间: 2024-12-17 17:55:11