1.正整數轉為二進位制:取餘,倒序
2.小數轉為二進位制:乘2取整,正序
如:0.2
0.2 x 2 = 0.4 ------- 0
0.4 x 2 = 0.8 ------- 0
0.8 x 2 = 1.6 ------- 1
0.6 x 2 = 1.2 ------- 1
0.2 x 2 = 0.4 ------- 0
… … 後面是無限迴圈,取前面一部分
所以0.2轉為二進位制是:0.00110011
3.大於1的小數:拆成整數和小數部分,分別計算
如10.2的二進位制為:1010.00110011
4.負數:在正整數基礎上,取反並加1
我的版本:
var reslist =
;function
func
(num)
reslist.
push(1
);return reslist.
reverse()
.join('');}
答案:
function
transfer
(num)
return reslist.
reverse()
.join(''
);}var result =
transfer(10
);console.
log(result)
;
1.我的版本的最後乙個1是手動加的,在進入迴圈之前已經做了一次運算,所以最後一次的餘數沒有儲存到列表裡,反而多了一步push的操作,下次遇到類似情況,將第一次的無特殊情況的計算也放到迴圈裡
2.我的列表初始化放在函式外面,
當我多次呼叫這個轉換函式時,前面的結果沒有清空,後面的結果就新增上去了
如計算兩次10的二進位制,本來應該每次都顯示1010,
我的版本,第一次顯示1010,第二次顯示10100101
relist在第一次計算之後,是[1,0,1,0],第二次計算,在反序之前,會變成[1,0,1,0,0,1,0,1],反序之後就是[1,0,1,0,0,1,0,1]
系統提供了很方便的進製轉換函式tostring(),僅需指定進製即可
轉成二進位制就用tostring(『2』)
轉成8進製就用tostring(『8』)
數字字串轉二進位制
題目描述 輸入乙個三個數字的字串,請將此串進行如下整理 將字串轉換成數字,轉換為二進位制數,如果倒數第三位是 0 則輸出 0 如果是 1 則輸出 1 比如,輸入字串 240 轉換為二進位制為 11110000 它的倒數第三位是 0 所以輸出是 0 輸入輸入字串 輸出輸出字串 樣例輸入 000樣例輸出...
彙編2 16以下數字十進位制轉二進位制
一.程式設計環境 emu8086 二.功能 彙編2 16以下數字十進位制轉二進位制 在輸入回車時,結束輸入 在輸入q或者q時結束程式 遇到非法字元時,重新輸入 三.data segment err1 db error input please restart jieshu db get q or q...
演算法練習篇之 二進位制中1的個數
輸入乙個整數,輸出該數二進位制表示中1的個數。其中負數用補碼表示。如果乙個整數不為0,那麼這個整數至少有一位是1。如果我們把這個整數減1,那麼原來處在整數最右邊的1就會變為0,如果最右邊的1後面還有0的話 原來在1後面的所有的0都會變成1。其餘所有位將不會受到影響。舉個例子 乙個二進位制數1100,...