簡體   English   中英

將負整數轉換為C ++中的二進制字符串

[英]Convert negative int to binary string in c++

我需要將一個負整數轉換為二進制字符串。 我用二進制補碼。 例如,我的電話號碼是-1。

首先,將負數更改為正1。然后,轉換為二進制字符串為0001。接下來,翻轉字符串為1110。

問題是我不知道如何在字符串中加1以獲得1111。

我已經像32位一樣使用了位設置功能

bitset<32>(input).to_string();

原來是1111 1111 1111 1111 1111 1111 11111111。我只需要最后4個。我不知道如何拿走其余的東西。 我需要32位,因為我的輸入可以是很大的數字,例如-300。

請幫我解決一下這個。

如果您完全有能力獲取整數,請翻轉符號,然后翻轉所有位,但是您只需要添加一個位的幫助,這里有一個簡單的解決方案!

翻轉位之前加1 而已!

您的電話號碼是-1? 加1,得到0。將符號翻轉,仍為0。轉換為二進制字符串0000。現在翻轉位,您將獲得1111 = -1!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM