在 c++ 中将负 int 转换为二进制字符串

Convert negative int to binary string in c++

本文关键字:转换 二进制 字符串 int c++      更新时间:2023-10-16

我需要将负整数转换为二进制字符串。我用了两个的补语。例如,我的数字是 -1。

首先,我将负数更改为正 1。然后,转换为二进制字符串是 0001。接下来,我翻转字符串是 1110。

问题是我不知道如何在字符串中添加 1 以获得 1111。

我已经使用了 32 位的位设置功能,例如

bitset<32>(input).to_string();
原来是1111 1111 1111 1111 1111 1111 1111 1111

1111。我只需要最后 4 个。我不知道如何带走其余的。我需要 32 位,因为我的输入可能是很大的数字,例如 -300。

请帮我解决这个问题。

如果您完全能够取一个 int,翻转符号,然后翻转所有位,但您只需要帮助添加一个,有一个简单的解决方案!

在翻转位之前添加 1。就是这样!

你的号码是-1?加一,得到0。翻转符号,仍然是 0。转换为二进制字符串 0000。现在翻转位,你有 1111 = -1!