前端提高篇(五)練習2 數字轉二進位制

2021-10-19 22:54:21 字數 1301 閱讀 7108

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,...