1017 負二進位制轉換

2021-10-13 17:17:57 字數 882 閱讀 2692

題目描述:

給出數字 n,返回由若干 「0」 和 "1"組成的字串,該字串為 n 的負二進位制(base -2)表示。

除非字串就是 「0」,否則返回的字串中不能含有前導零。

示例 1:

輸入:2

輸出:「110」

解釋:(-2) ^ 2 + (-2) ^ 1 = 2

示例 2:

輸入:3

輸出:「111」

解釋:(-2) ^ 2 + (-2) ^ 1 + (-2) ^ 0 = 3

示例 3:

輸入:4

輸出:「100」

解釋:(-2) ^ 2 = 4

0 <= n <= 10^9

方法1:

(1)最終的結果的各個位是0或1;

(2)先根據數字當前是奇數還是偶數,若是偶數,則對應的位是0,並將該數字除以2後取相反數;

(3)若當前數字是奇數,則對應的位是1,並根據當前數的正負,做進一步的處理,既若是正數,則直接除以2後取相反數,若是負數,為了保證對應的位能夠取到1,而不是-1,則需要先將當前數字減一後,再除以2,並取相反數;

(4)直到最後該數成為0;

class

solution

string res;

while

(n)else

}else

}reverse

(res.

begin()

,res.

end())

;return res;}}

;

二進位制轉換

e.g 二進位制轉換為八進位制 e.g 求10111001的八進位制 三位三位擷取,分解為 10 111 001 001 2的0次 1 111 2的0次 2的1次 2的2次 7 10 2的0次 2的1次 2 所以,八進位制為271 二進位制轉換為十六進製制 e.g 求10111001的十六進製制 四...

二進位制轉換

負整數小數 負小數十進位制 2的次冪 二進位制1 200001221 0010 321 20 0011422 0100 522 20 0101 622 21 0110 722 21 20 0111823 1000 比如 100轉成二進位制 1,轉成2的次冪 100 26 25 22 2,0000 0...

縮短二進位制(進製轉換)

題目鏈結 題目描述 我們處理的整數通常用十進位制表示,在計算機記憶體中是以二進位制補碼形式儲存,但通常二進位制表示的整數比較長,為了便於在程式設計過程中理解和處理資料,通常採用八進位制和十六進製制,縮短了二進位制補碼表示的整數,但保持了二進位制數的表達特點。請輸出十進位制整數1234對應的八進位制和...