sinat_31601333
Mokoa
采纳率14.3%
2016-04-23 14:26 阅读 2.7k

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

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

4条回答 默认 最新

  • q610098308 恋恋西风 2016-04-23 14:40

    直接格式化成string format;

    点赞 评论 复制链接分享
  • q610098308 恋恋西风 2016-04-23 15:16

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

    点赞 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 2016-04-23 15: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 2016-04-23 15:40

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

    点赞 评论 复制链接分享

相关推荐