二進位/十進位轉換?別用除法了,太弱的方法了.來看捷徑(啥也不背,2分鐘學會)

2021-01-18 大零蛋帶你零基礎學電腦



進位轉換的問題,考試要考

這種題怎麼破,還用除法?

你不覺得這種方法非常不好算麼

咱玩轉的同學,從來不用這種方法

因為,我們有捷徑——


捷徑在哪裡?就是《玩轉Office輕鬆過二級》第3版,書中介紹的方法!


以下節選自本書正文:


1.2.2.1 十進位數轉換為二進位數

在講進位轉換之前,先來做一個小遊戲。現有一架天平,和4種重量的砝碼,分別重8克、4克、2克、1克(每種砝碼只有一個)。現要用此天平稱重13克的物體,物體放在左盤上,如圖1-3所示。請問在右盤上應怎樣選放4種砝碼,才能使左右兩盤同樣重天平平衡呢?


圖1-3 用天平稱量重物


顯然在右盤上應選放8克、4克、1克這3種砝碼,使右盤總重量也為13。將選放的砝碼用1表示,未選放的砝碼用0表示(只有2克的砝碼未選),按8、4、2、1的順序依次寫出就是:1101,則1101就是十進位數13的二進位形式。無形中已經完成十進位數13到二進位的轉換。


這種轉換方法歸納起來就是:用8、4、2、1四個數去"湊"一個十進位數,選用的數用1表示,未選用的數用0表示,按8、4、2、1由高到低的順序依次寫出1、0序列就是對應的二進位數了。

又如,十進位數8轉換為二進位可直接寫出為:1000。因為重物重8克,恰好有一個8克的砝碼,只選放這一個8克的砝碼就可以了。僅8的對應位寫1,其他3位都寫0。


這四個砝碼的重量8、4、2、1是通過由1開始,向左依次×2得到的,這些數實際是二進位權值。當然還可以再繼續向左×2得到更大的權值16、32、64、128……。當要轉換的十進位數在16以上時,就要用更大的權值來"湊"這個十進位數,轉換方法不變。這種通過用權值"湊"十進位數來轉換二進位的方法屬於降冪法,這是一種比"除2取餘"更簡便的方法


來,做一道題庫裡的考試題,試試——


【真題連結1-15】十進位數18轉換成二進位數是(  )。

A)010101    B)101000

C)010010     D)001010

【答案】C

【解析】用16、8、4、2、1來湊18,顯然用16和2即可。則16和2對應位寫1,其餘對應位寫0,按16、8、4、2、1的順序依次寫出各位為10010。而在數字前加0大小不變,當然也可寫為010010。



對於較大的十進位數不易直接看出權值的"湊"法,這時可由大到小依次考慮各位權值:如果某位權值≤目前"剩餘"的數值,就選用它;否則不選用。例如,十進位數117轉換為二進位數為:1110101B。寫出權值為"64、32、16、8、4、2、1",權值的"湊法"是:

(1)首先考慮權值64是否選用,由於64<117,應該選用。這時要湊的數值還剩117-64=53;

(2)然後考慮權值32,由於32<53(注意要與"剩餘"的數值來比,不要再與117比),也應選用。又選用了32後,目前要湊的數值還剩53-32=21;

(3)再考慮權值16,由於16<21,也應選用16,目前要湊的數值還剩21-16=5;

(4)再考慮權值8,由於8>5,因此不選用8,目前要湊的數值仍還剩5;

(5)再考慮權值4,由於4<5,選用4,目前要湊的數值還剩1;

(6)再考慮權值2,由於2>1,因此不選用2,目前要湊的數值仍還剩1;

(7)再考慮權值1,1=1,選用此權值1,恰好湊完。


在實際換算時,可畫出如圖1-4所示的過程:先依次寫出各位權值(第二行),然後在第一行最左邊寫出117,從左到右遞推。根據每位權值是否選用,在對應位的權值下(第三行)依次寫1或0。

圖1-4 用降冪法將十進位數117轉換為二進位數的遞推過程(灰色線條表示減法計算的減號和等號,例如117-64=53)



來,再做一道題庫裡的考試題,試試——


【真題連結1-16】十進位數60轉換成無符號二進位整數是(  )。

A.0111100    B.0111010

C.0111000    D.0110110

【答案】A

【解析】32、16、8、4這四個權值剛好湊出60(32+8=40,16+4=20;40+20=60),這四個權值對應位寫1。只剩2、1兩個權值對應位寫0,依次寫出各位就是111100。而在數字前加0,大小不變。題目中的"無符號"含義是非負數。在二進位的補碼表示中,首位為1表示負數,為0表示非負,因此答案在數字前加一個0強調非負,更為嚴謹。


為十進位數轉換為二進位數的逆過程:

已知了二進位數即已知了各位權值的"湊法",所使用的權值之和即為對應的十進位數。例如,二進位數1101B轉換為十進位數是13,其轉換方法是:

把二進位數1101按從左至右的順序依次讀作8、4、2、1,將二進位數為1的位對應所讀數字相加就可以了,如圖1-5所示。

圖1-5 二進位數1101轉換為十進位數的讀數遞推過程


又如:二進位數1010B轉換為十進位數是10,二進位數101B轉換為十進位數是5。


又到了練幾道題的時候了——



【真題連結1-17】如刪除一個非零無符號二進位偶整數後的2個0,則此數的值為原數的(  )。

A.4倍    B.2倍  

C.1/2    D.1/4

【答案】D

例如:0100,十進位是幾?4。刪除後2個0變為:01,十進位是幾?1。是原數的多少?


【真題連結1-18】用8位二進位數能表示的最大的無符號整數等於十進位整數(  )。

A.255    B.256

C.128    D.127
【答案】A
【解析】答案是1111 1111(8個1),但在分析的時候,並不分析1111 1111,而分析1 0000 0000 更為簡便。後者是在1111 1111基礎上+1得到的,而後者的十進位形式是256(最右邊一位"砝碼重"1,向左各位依次×2得到2、4、8、16……至最左邊的1對應256。只有256對應位為1其他位均為0,只放了256這一個砝碼,十進位數當然是256)。1111 1111的數比它小1,當然是255了。


以上幾道題會了,題庫裡所有這一類的選擇題,全會了!

用得著1300道選擇題,都做一遍嗎?

還找什麼手機,手機刷題軟體?要在手機上把1300道都做一遍,你不覺得累?


PS:八進位/十六進位轉換,二級office要求不多。如需系統學習,還可參考《C語言其實很簡單》:又被搶光了!《C語言其實很簡單》第7次加印:告別枯燥輕鬆學習,顛覆傳統教學模式



很多時候,學習困難,是因為你沒看《玩轉Office輕鬆過二級》第3版。看視頻有什麼用?本來2分鐘能解決的,非要去看幾十分鐘的視頻,看完還是一頭霧水……


為什麼有捷徑,有同學就是不願意用呢


電子版,我們還沒有找到。如果你找到了,記得告訴我們


《玩轉Office輕鬆過二級》第3版全國新華書店和各大網店有售。讀者在網上搜索本書書名(玩轉Office輕鬆過二級),找合適的賣家即可(我們是作者,作者不直銷噢)。




相關焦點

  • scratch+程小奔機器人實現「進位轉換」(十進位轉二進位)
    /關(通/斷)」(即0/1)兩種情況,這與誕生幾千年的二進位不謀而合;例如:二進位數字110,表達的就是十進位中的6;二進位數字1111,表達的就是十進位中的15。十進位→二進位→解釋;2→10→二的一次方;4→100→二的二次方;8→1000→二的三次方;16→10000→二的四次方;下面我出三道題大家來試著做一下:將下列十進位數字轉換成二進位:23;27;35;思路1:這是我經常用的辦法:23=16+7=16+4+3=2的四次方+2
  • 介紹一種二進位轉換成十進位的方法
    二進位如何轉換成十進位二進位轉換為十進位的簡便方法。
  • Day7 進位的表示與轉換
    要輸入一個二進位,你要先把它轉換成二進位。用短除法算一下:結果倒著寫,也就是說十進位數 666 的二進位數是 1010011010,把它輸入 py 中。這玩意兒是個,看起來很像二進位數的十進位數。這是因為在 python 中,默認情況下認為你輸入的數都是十進位的。
  • 二進位、八進位、十進位和十六進位數之間的轉換方法
    ②轉換方法十進位整數化為非十進位整數採用「餘數法」,即除基數取餘數。把十進位整數逐次用任意十制數的基數去除,一直到商是0 為止,然後將所得到的餘數由下而上排列即可。③十進位小數轉換成非十進位小數轉換方法十進位小數轉換成非十進位小數採用「進位法」,即乘基數取整數。
  • 二進位、八進位、十進位、十六進位數的轉換方法
    -2+…+a2*p2+a1*p1+a0*p02、十進位數與P進位數之間的轉換①十進位轉換成二進位:十進位整數轉換成二進位整數通常採用除2取餘法,小數部分乘2取整法。1 ----最左位∴ (30)10 =(1E)163、將P進位數轉換為十進位數把一個二進位轉換成十進位採用方法:把這個二進位的最後一位乘上20,倒數第二位乘上21,……,一直到最高位乘上2n,然後將各項乘積相加的結果就它的十進位表達式。
  • 二進位轉換為十進位和十進位轉換為二進位的方法
    各位小夥伴們大家好,在之前的文章中小編也介紹了關於二進位轉十進位的方法,這次小編知道了一個更簡單的方法,具體如下:比如我們要把28轉為二進位:28轉換為2進位先用2的n次方來表示28這個數,然後用2的n次方乘以1或者乘以0,相加來湊成與之相等的數,得到的1或者是0,根據這個表格,從左往右把二進位數字湊在一起,11100就是28的二進位了。
  • 10、進位轉換:二進位、八進位、十六進位、十進位之間的轉換
    7×160 = 3751(十進位)將十進位轉換為二進位、八進位、十六進位將十進位轉換為其它進位時比較複雜,整數部分和小數部分的算法不一樣,下面我們分別講解。,是一個循環小數;十進位 0.625 對應的二進位為 0.101,是一個有限小數。二進位和八進位、十六進位的轉換其實,任何進位之間的轉換都可以使用上面講到的方法,只不過有時比較麻煩,所以一般針對不同的進位採取不同的方法。將二進位轉換為八進位和十六進位時就有非常簡潔的方法,反之亦然。
  • 二進位、八進位、十進位、十六進位轉換計算方法
    進位也就是進位位,我們常用的進位包括:二進位、八進位、十進位與十六進位,它們之間區別在於數運算時是逢幾進一位。比如二進位是逢2進一位,十進位也就是我們常用的0-9是逢10進一位。
  • 進位轉換 二進位轉十進位
    上節課我們學習了十進位轉換成二進位的方法,那二進位轉換十進位是怎麼轉換的呢?
  • 二進位,八進位,十進位,十六進位之間的轉換
    二進位轉換首先來看十進位到二進位:除2取餘數 最後把餘數倒過來 100101比如:十進位數37所以轉換成的二進位數字為:100101再來八進位到二進位:一個八進位的位拆分成一個三位的二進位數因此十進位的2456轉換為八進位結果為4630。二進位到八進位轉換 7=4+2+1 111 八進位最大的數字是7轉換成二進位剛好是111,佔3個位每三個二進位數為一組,轉成一個八進位數位,如果二進位高位不足3位時,用零填補。
  • 二進位轉換十進位,十進位轉換二進位
    如果把一個十進位的數轉換成二進位的數 , 直接把數除 以二 , 餘數為一就寫1 , 整除 , 就寫0 , 一直除完為止
  • 關於二進位、十進位、八進位、十六進位數據轉換計算方法詳細總結
    例2,將0.45轉換為二進位(保留到小數點第四位) 大家從上面步驟可以看出,當第五次做乘法時候,得到的結果是0.4,那麼小數部分繼續乘以2,得0.8,0.8又乘以2的,到1.6這樣一直乘下去,最後不可能得到小數部分為零,因此,這個時候只好學習十進位的方法進行四捨五入了
  • 計算機的語言——二進位,十進位、八進位、十六進位與二進位之間的轉換
    而C程序代碼中的整數常量,為了書寫方便,用十進位、八進位、十六進位表示,比如:十進位整數123、-23、+99等。而無論十進位、八進位還是十六進位數據在計算機中表示是轉換成二進位編碼表示,計算機中只存在二進位。
  • 計算機基礎進位轉換(二進位、八進位、十進位、十六進位)
    1.十進位轉R進位1.1 十進位轉二進位十進位整數轉二進位十進位整數轉換成二進位採用「除2倒取餘」,十進位小數轉換成二進位小數採用
  • 二進位,八進位,十進位,十六進位轉換詳解~
    規則逢二進一逢八進一逢十進一逢十六進一權2^i-18^i-110^i-116^i-12.進位轉換十進位01234567        2.  方法二:八進位···>十進位···>二進位             2268 = 2×8^2 + 2×8^1 + 6×8^0 = 15010             15010 = 100101102       (一位八進位數可轉換為三位二進位數,整數不夠三位在左側補0,小數在右側補0)      100101102 = (
  • 6、計算機進位之二進位、十進位、十六進位之間的轉換
    4、進位之間的轉換4.1、正整數的十進位轉換二進位將一個十進位數除以二,得到的商再除以二,依此類推直到商等於一或零時為止,倒取除得的餘數,即換算為二進位數的結果只需記住要點:除二取餘,倒序排列。由於計算機內部表示數的字節單位都是定長的,以2的冪次展開,或者8位,或者16位,或者32位....。於是,一個二進位數用計算機表示時,位數不足2的冪次時,高位上要補足若干個0。本文都以8位為例。
  • scratch3.0圖形化編程軟體解決「進位轉換(二進位)」問題
    網友互動留言收到網友的評論,我前幾天發的「十進位轉二進位」的文章,網友表示沒有程小奔機器人,是否可以做一個scratch版本的,放心!這就安排!二進位的故事我們這裡就不科普了哈!想要回顧的請移步「百度百科」,嘻嘻首先 我們來看一下1~16 的一個二進位與十進位的對照表格:以上表格就是0-16的表達對照這種方法就是我之前文章的「思路1」,感興趣的網友們可以去看一下我之前的文章連結→scratch+程小奔機器人實現「進位轉換」(十進位轉二進位)這次我們主要說一下「短除法」思路解決十進位轉換為二進位
  • 二進位、八進位、十進位、十六進位之間的轉換
    反過來,當我們看到 FD時,如何迅速將它轉換為二進位數呢?先轉換F:        看到F,我們需知道它是15(可能你還不熟悉A~F這六個數),然後15如何用8421湊呢?應該是8 + 4 + 2 + 1,所以四位全為1 :1111。接著轉換 D:        看到D,知道它是13,13如何用8421湊呢?
  • Cortex―M0單片機二-十進位整數轉換的快速算法
    關鍵詞:Cortex-M0;單片機;二-十進位轉換BCD碼;常數除法;快速算法引言 在單片機應用系統中,一般都需要高效快速地完成系統所需要的任務,並在任務完成後使系統進入睡眠或低功耗狀態,以便最大限度地節省系統功耗,增強系統的抗幹擾能力。因此,必須優化和提高系統中各個模塊的運算速度,以最大限度地壓縮軟體運行時間。
  • 個人總結——二進位、十進位、十六進位轉換的方法
    近期和同事溝通時發現很多小夥伴多進位的轉換不太清晰,所以趁著周末自己總結了一下和大家分享想,下面先了解下定義。