十進位轉二進位的最新簡單算法

2020-09-05 張員外講編程

上周末,給孩子輔導奧數的時候,發現居然有一道二進位題,題目是求兩個二進位的和。我的視頻課第一課中就介紹了二進位的特點「逢二進一,借一當二」,給孩子講了下,他還是順利的做了出來。然後,我又給孩子講了下十進位與二進位的轉換。在講十進位與二進位轉換的時候,我是按照咱們以前學的除二取餘法,如下圖所示:

這種算法應該說是教科書的算法,去各大搜尋引擎搜出來的算法都是這個。

我大概比別人多思考了一步,我在想為什麼要除2取餘,經過思考我發現其實質是要找出這個數裡面含有多少個2,例如例圖中的150,它的裡面就含有75個2,而2的二進位為10,也就是說要算出75個(10)₂的和。繼續思考,你會發現,(10)₂+(10)₂=(100)₂=2² , (100)₂+(100)₂=(1000)₂=2³,於是我得出了如下圖所示結果:

從上圖中可以總結出一個規律:那就是2的指數是幾,換算成二級制後面就有幾個0,比如:2⁸=100000000。這個也好理解,我的視頻課程講ASCII碼時,說ASCII碼只佔用了7位存儲,最高位為0,所以最多可以存儲128個字符,存儲範圍從00000000到01111111,也就是10進位的0-127。下圖就是我的最新算法:

大家可以對比一下,看看是否簡化了原先的除2取餘算法。如果你覺得本文還不錯,請幫忙轉發給需要的朋友。

相關焦點

  • 十進位與二進位、八進位、十六進位互轉
    十進位與二進位互轉  首先理解十進位如何轉二進位:將十進位數據除以2直到商為0,然後將餘數從下往上排序連接,即可得到該數字的二進位數。如:整數1313/2=6餘16/2=3餘03/2=1餘11/2=0餘1取13餘數,倒序連接。
  • 二進位上的明文算法
    於是對於一個二進位字符串就可以表示成文本的二進位串了.但是這個算法也是有代價的。還是上面的例子, 對於二進位我們只需要11位元組的空間就可以儲存下對應的內容了。但是轉化為二進位明文後, 需要88位元組才能出儲存下轉換後的內容。三、常用的十進位對於十進位,我們在數字中經常使用。
  • python進位轉換:十進位轉二進位的用法
    我們在學習python時候肯定會碰到關於進位轉換,其實這是非常簡單的,這個就像小學學習數學乘法口訣意義,只要記住轉換口訣即可輕鬆應用,一起來看下具體的操作內容吧~一、python進位轉換dec(十進位)—> bin(二進位)dec(十進位)—> oct(八進位)dec(十進位)—> hex(十六進位)二、十進位我們所熟知的十進位,其實是從 0 開始,數到 9 之後,就跳到
  • 二進位、八進位、十進位與十六進位
    二進位是0和1; 八進位是0-7;十進位是0-9;十六進位是0-9,A-F(大小寫均可)。也可以這樣簡單記憶,假設是n進位的話,基數就是【0,n-1】的數字,基數的個數和進位值相同,二進位有兩個基數,十進位有十個基數,依次類推。
  • 二進位、八進位、十進位、十六進位之間的轉換
    二進位、八進位、十進位、十六進位之間的轉換二進位與十進位之間的轉換1十進位轉二進位方法為:十進位數除2取餘法,即十進位數除
  • 計算機基礎進位轉換(二進位、八進位、十進位、十六進位)
    1.十進位轉R進位1.1 十進位轉二進位十進位整數轉二進位十進位整數轉換成二進位採用「除2倒取餘」,十進位小數轉換成二進位小數採用
  • 二進位、八進位、十進位、十六進位相互轉化
    數值是0~9 逢十進一    2.二進位 數值是0~1 逢二進一    3.八進位 數值是0~7 逢八進一    4.十六進位 數值0~9 A~F 逢十六進一二、數位    一個數字所在的位置    1000   4位 個0 十1 百2千3    10101 二進位  5位  01234
  • 吳國平:除了十進位, 人類文明史上還有哪些進位算法?
    當我們看到像1、25、356……這些耳熟能詳的數字,大家都知道這是學習數學的基礎,代表全世界通用的十進位,即滿十進一,滿二十進二,以此類推。世界通用的十進位,對於現代文明的我們看來是那麼地熟悉自然。在人類文明進程過程中,算法並不是就只有十進位一種,在很多文明體系中出現各種各樣的算法,如二進位、二十進位等等。
  • 十進位轉二進位的方法
    學完進位後,會發現十進位與二、五、八、十六等進位是有共同原理的,傳說中的二進位不是想像的那麼神秘和困難,理解之後,會自然掌握進位之間的相互轉化,以下以十進位轉化成二進位為例來說明
  • 【二進位】----十進位數轉換成二進位數
    這樣由0--9十個數字來表示並且進位規則是「逢十進一」,借位規則是「借一當十」就是我們常說的十進位的數。你知道嗎?除了我們常見的十進位的數,還有二進位、五進位、八進位、十六進位和六十進位的數。今天我們來說說二進位。
  • 如何實現二進位轉十進位的設計
    設計背景: 二進位轉十進位在設計應用中十分的廣泛。尤其在AD轉化中是必須所用到的一個小知識點,學習二進位轉十進位的方法顯的非常的重要。今天就和筆者來學習二進位轉十進位的方法,通過簡單的學習來掌握這麼一門知識。
  • 二進位轉換為十進位和十進位轉換為二進位的方法
    各位小夥伴們大家好,在之前的文章中小編也介紹了關於二進位轉十進位的方法,這次小編知道了一個更簡單的方法,具體如下:比如我們要把28轉為二進位:28的二進位了。11100轉十進位還是從左到右,第一個數字1後面有4個數字,那麼就是2的4次方,之後一次類推知道2的0次方,再用相對應的次方乘以相對應的二進位數字就可以了,所以11100得到的十進位數字就是
  • scratch+程小奔機器人實現「進位轉換」(十進位轉二進位)
    進位轉換圖【原創】文章全部內容皆為作者原創,如有轉載請註明出處我們人類有十根手指,通常情況下我們在生活中的計數方式為「十進位」(即0-9),也就說滿十進一;而在計算機的世界裡,基礎電路只有「開/關(通/斷)」(即0/1)兩種情況,這與誕生幾千年的二進位不謀而合;例如:二進位數字110,表達的就是十進位中的6;二進位數字1111,表達的就是十進位中的15。
  • JS十進位轉換二進位
    最近因為需求,要接觸到前端JS的一些東西,遇到需要把十進位數字轉換為二進位,並且補全對應位數,覺得蠻有趣的,所以把它記錄下來。十進位轉二進位方法其實很簡單,一個函數搞定了:var value = parseInt(12).toString(2);//parsetInt裡面是要轉換的數字,toString裡面是要轉換的進位,//如果要轉換為其他進位,替換掉就好了,so easy。
  • C語言實現十進位轉2~16進位、十六進位轉十進位
    1、十進位轉2~16進位【問題描述】從鍵盤輸入十進位整數num及轉換的進位數base,將整數num轉換為base進位(base方法為:十進位數除base取餘法,即十進位數除以base,餘數為權位上的數,得到的商值繼續除以base,依此步驟繼續向下運算直到商為0為止。
  • 二進位、八進位、十進位、十六進位轉換計算方法
    進位也就是進位位,我們常用的進位包括:二進位、八進位、十進位與十六進位,它們之間區別在於數運算時是逢幾進一位。比如二進位是逢2進一位,十進位也就是我們常用的0-9是逢10進一位。
  • 6、計算機進位之二進位、十進位、十六進位之間的轉換
    4、進位之間的轉換4.1、正整數的十進位轉換二進位將一個十進位數除以二,得到的商再除以二,依此類推直到商等於一或零時為止,倒取除得的餘數,即換算為二進位數的結果4.2、二進位轉換為十進位二進位轉十進位的轉換原理:從二進位的右邊第一個數開始,每一個乘以2的n次方,n從0開始,每次遞增1。然後得出來的每個數相加即是十進位數。
  • 二進位、八進位、十進位、十六進位數的轉換方法
    一)、數制計算機中採用的是二進位,因為二進位具有運算簡單,易實現且可靠,為邏輯設計提供了有利的途徑、節省設備等優點,為了便於描述
  • 二進位與十進位互轉,史上最牛X方法!
    十進位轉二進位相信學過計算機的同學一定對二進位不陌生,計算機底層的通訊就是二進位嘛!
  • 大話二進位,八進位,十進位,十六進位之間的轉換
    1*163+1*161+1*160=4096+16+1=4113當然其他進位轉換成10進位是最簡單的了,我想聰明的你肯定會了。4.二進位轉換首先來看十進位到二進位:除2取餘數 最後把餘數倒過來 100101比如:十進位數37