EV3關於10進位轉換2進位的詳解

2021-01-08 小馬智能創客

哈咯各位大家好

之前突發奇想想做一個關於十進位轉化成二進位的想法,在這裡給大家講解一下。

關於數字有多進位的,十進位、二進位、三進位、八進位、十六進位....等等。對我們最熟悉的莫過於十進位和二進位了,接下來給大家講解下如何實現將十進位轉化為二進位。

【1】十進位我們最熟悉,我在這裡不多做解釋,只說十進位怎麼運算,例如302,可以看成從右往左以索引倒敘分別從0開始,進行注釋。

如圖所示1

接下來我們用十進位開始進行運算,下行索引倒敘為十進位10的指數,數字作為乘數,然後進行相加。

十進位整數轉換為二進位整數 十進位整數轉換為二進位整數採用"除2取餘,逆序排列"法。具體做法是:用2去除十進位整數,可以得到一個商和餘數;再用2去除商,又會得到一個商和餘數,如此進行,直到商為零時為止,然後把先得到的餘數作為二進位數的低位有效位,後得到的餘數作為二進位數的高位有效位,依次排列起來。

我們還是以302來進行舉例:

所以它的二進位就是100101110,將二進位轉化回來也是同樣的道理,只不過底數變成了2,我們看下:

到這裡我們基本十進位轉化為二進位的原理理解清楚了。

【2】接下來我們進入到編程:

1、產生數字:

在這裡我們可以採用按鍵選取自己指定的數字num,大飛在這裡優先建議大家採用這個方法,其次如果不想選數字,也可以隨機產生

圖片2

2、運算選取的數字num使其除2直至為0

這裡可以將除後的值再次給到num,因為除一次後num也沒作用了可以當下次的商,哈哈對num就是這麼無情。

其次就是取每次的模變量yu,運用高級運算裡面的Modulo,把yu按照索引寫入數組中,瘋狂循環除。

直到!我們的商num的值小於1位置,或者小於等於0,都可以,這是一個觸發條件。當條件觸發後我們需要再次寫入一次,相當於最後一次寫入,因為最後一次運算程序先判斷,但是我們還要餘數,所以需要再次寫入一次。

這裡我們可以用一個聲音來檢測餘數是否寫入數組成功,防止數據溢出。

3、倒敘顯示餘數

目前我們已經把十進位數字產生,並且把餘數儲存至數組裡面,接下來我們要做的就是把它顯示出來,因為二進位的顯示是以倒敘的形式顯示的,所以我們拿到新出鍋的餘數數組需要倒敘顯示。

方法有很多種:

這裡大飛是用按照索引輸出,但是顯示出來從屏幕後方,0號索引值顯示在x=150位置上,接下來1號索引顯示主機遞減,顯示在130,110,90....以此類推,以20遞減。

需要注意的是這裡顯示循環的次數是之前產生餘數循環的次數,可以在最開始的產生餘數循環內加一個變量專門計數,在我們顯示循環的循環內循環制定的次數。

總體的講解到這裡就結束,這種方法主要是使用數組陣列的方法將產生出來的數字,通過轉換成一排0101的的數字倒序寫入數組中,隨後輸出顯示出來。

有想溝通交流的可以私信評論,大飛在這裡會和大家討論研究。

喜歡的朋友可以關注一下,謝謝啦飛仔們

相關焦點

  • C# 16進位轉換10進位相關函數詳解
    C# 16進位轉換10進位相關函數詳解 在C#中可以對整型運算對象按位進行邏輯運算,同時也可以實現C# 16進位轉換10進位,C#10進位轉換2進位等功能。
  • 10、進位轉換:二進位、八進位、十六進位、十進位之間的轉換
    再如,將十六進位數字 9FA8C 轉換成十進位:9FA8C = 9×164 + 15×163 + 10×162 + 8×161 + 12×160 = 653964(十進位)從右往左看,第1位的位權為 160=1,第2位的位權為 161=16,第3位的位權為 162=256,第4位的位權為 163=4096,第5位的位權為 164=65536 …… 第n位的位權就為
  • 二進位,八進位,十進位,十六進位轉換詳解~
    數制/N二進位八進位十進位十六進位數碼0,10,1,2,3,4,5,6,70,1,2,3,4,5,6,7,8,90,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F基數281016規則逢二進一逢八進一逢十進一逢十六進一權2^i-18^i-110^i-116^i-12.進位轉換十進位01234567
  • 計算機等級考試詳解:十進位數92轉換為二進位數!
    計算機等級考試詳解:十進位數92轉換為二進位數!本經驗由宗龍龍原創,全文共1000多字,閱讀需要14分鐘,如果文中存在錯誤,還請大家多多指點,我會積極改進的!14、十進位數92轉換為二進位數是()。A)01011100B)01101100C)10101011D)01011000(圖片來源於網絡)這一題主要考察的是十進位與二進位的相互轉換問題。如果你不知道如何轉換,沒有關係,我們只需要打開pc電腦端的計算器便可以輕鬆的進行十進位與二進位之間的轉換。
  • 關於二進位、十進位、八進位、十六進位數據轉換計算方法詳細總結
    下面在安靜的音樂中,讓我們開始學習吧在我們接觸編程知識時,總會接觸有關進位轉換的知識,最常見的就是10進位與二進位或十六進位之間的轉換,很多時候我們總會遺忘,雖然現在也出現了很多可以直接使用的網絡在線的進位轉換工具,但考試中,我們就要靠自己通過公式進行運算了。
  • 二進位、八進位和十六進位之間轉換
    十進位是在人類社會發展過程中自然形成的,它符合人們的思維習慣,例如人類有十根手指,也有十根腳趾。進位也就是進位制。進行加法運算時逢X進一(滿X進一),進行減法運算時借一當X,這就是X進位,這種進位也就包含X個數字,基數為X。十進位有 0~9 共10個數字,基數為10,在加減法運算中,逢十進一,借一當十。
  • python進位轉換:十進位轉二進位的用法
    我們在學習python時候肯定會碰到關於進位轉換,其實這是非常簡單的,這個就像小學學習數學乘法口訣意義,只要記住轉換口訣即可輕鬆應用,一起來看下具體的操作內容吧~一、python進位轉換dec(十進位)—> bin(二進位)dec(十進位)—>
  • 二進位轉換為十進位和十進位轉換為二進位的方法
    各位小夥伴們大家好,在之前的文章中小編也介紹了關於二進位轉十進位的方法,這次小編知道了一個更簡單的方法,具體如下:比如我們要把28轉為二進位:28轉換為2進位先用2的n次方來表示28這個數,然後用2的n次方乘以1或者乘以0,相加來湊成與之相等的數,得到的1或者是0,根據這個表格,從左往右把二進位數字湊在一起,11100就是28的二進位了。
  • 二進位,八進位,十進位,十六進位之間的轉換
    1234[10進位] 0 1 2 3 4 5 6 7 8 9 0 當數位上的值超過9就要進11000+200+30+4=1*103+2*102+3*101+4*100=12341011[2進位] 0 1 當數位上的值超過1就要進1
  • 二進位、八進位、十進位、十六進位數的轉換方法
    -2+…+a2*p2+a1*p1+a0*p02、十進位數與P進位數之間的轉換①十進位轉換成二進位:十進位整數轉換成二進位整數通常採用除2取餘法,小數部分乘2取整法。例如,將(30)10轉換成二進位數。將(30)10轉換成二進位數2| 30 ….0 ----最右位2 15 ….12 7 ….12 3 ….11 ….1 ----最左位∴ (30)10=(11110)2將(30)10轉換成八、十六進位數8| 30 ……6 -最右位3 -最左位∴ (30)10 =(36)816| 30 …14(E)----最右位
  • 二進位轉換十進位,十進位轉換二進位
    如果把一個十進位的數轉換成二進位的數 , 直接把數除 以二 , 餘數為一就寫1 , 整除 , 就寫0 , 一直除完為止
  • 二進位、八進位、十進位、十六進位之間的轉換
    反過來,當我們看到 FD時,如何迅速將它轉換為二進位數呢?先轉換F:        看到F,我們需知道它是15(可能你還不熟悉A~F這六個數),然後15如何用8421湊呢?應該是8 + 4 + 2 + 1,所以四位全為1 :1111。接著轉換 D:        看到D,知道它是13,13如何用8421湊呢?
  • 進位轉換
    個、十、百、千、萬···,以10為基數,冪次從0開始,每一位的權重分別是10^0,10^1,10^2,10^3,10^4···,所以 12345 = 1*10^4 + 2*10^3 + 3*10^2 + 4*10^1 + 5*10^0。除十進位外,我們常用的進位還有十六進位,八進位,當然最重要的就是二進位。
  • 計算機的語言——二進位,十進位、八進位、十六進位與二進位之間的轉換
    而C程序代碼中的整數常量,為了書寫方便,用十進位、八進位、十六進位表示,比如:十進位整數123、-23、+99等。而無論十進位、八進位還是十六進位數據在計算機中表示是轉換成二進位編碼表示,計算機中只存在二進位。
  • 計算機基礎進位轉換(二進位、八進位、十進位、十六進位)
    1.十進位轉R進位1.1 十進位轉二進位十進位整數轉二進位十進位整數轉換成二進位採用「除2倒取餘」,十進位小數轉換成二進位小數採用
  • 單片機進位轉換
    10進位數轉換成二進位數,這是一個連續除2的過程:   把要轉換的數,除以2,得到商和餘數,   將商繼續除以2,直到商為0。最後將所有餘數倒序排列,得到數就是轉換結果。二 ----> 十  二進位數轉換為十進位數   二進位數第0位的權值是2的0次方,第1位的權值是2的1次方……   所以,設有一個二進位數:0110 0100,轉換為10進位為:
  • 16進位轉換算成10進位程序
    16進位轉換算成10進位程序本文引用地址:http://www.eepw.com.cn/article/172812.htmunsigned char d[10]; //用於顯示的10位顯示緩存//========
  • 二進位、八進位和十六進位數之間的轉換
    然後將每一組的四位二進位數轉換為一位十六進位數。轉換方法可以參考表2-2中的進位對應關係,也可以採用按權展開的方法進行轉換。(說明:按權展開後得到的如果是0~9之間的數,直接寫這個數即可;如果是10~15之間的數,要將其轉換為十六進位的A~F。要注意十進位的10~15與十六進位的A~F的對應關係。)
  • 進位轉換方法
    10進位轉換成其他的都是除以要轉換成的那個數,也就是說轉換成二進位的就除以2,轉換成八進位的就除以8,轉換成十六進位的就除以16,然後倒取餘數。
  • 進位轉換 二進位轉十進位
    上節課我們學習了十進位轉換成二進位的方法,那二進位轉換十進位是怎麼轉換的呢?