Day7 進位的表示與轉換

2021-01-08 大學生的電腦課

這節課的內容太簡單了……

學習進位的轉換。

在計算機中,我們常用的進位有4種。

一、二進位(Binary)

在二進位裡,只有 0 和 1,二進位的運算遵循逢二進一。

在 python 中要輸入一個二進位數,你不能直接輸入。

比如我輸入一個 666 看看。

很明顯這是個十進位。

要輸入一個二進位,你要先把它轉換成二進位。

用短除法算一下:

結果倒著寫,也就是說十進位數 666 的二進位數是 1010011010,把它輸入 py 中。

這玩意兒是個,看起來很像二進位數的十進位數。

這是因為在 python 中,默認情況下認為你輸入的數都是十進位的。

要輸入二進位,你得給它加一個 0b 的前綴,是數字 0 和字母 b,不要搞錯了。

如上圖,py 告訴你你輸入的是十進位的 666。

因為本節課內容比較少,所以我補充一個手工速算十進位到二進位的轉換方法。

左側圖中,綠色的數字分別為 2 的 0 次方,2 的 1 次方,以此類推到無限大。

右側從 666 開始減去左側的表中的比他小的最大數,也就是拆分,666 可以拆分成 512+128+16+8+2,左側對應的數字標上去,然後倒著寫即可。

2 的 N 次方背熟後這個是可以心算的,不用列左側的表,直接遞減即可。

然鵝,在我們的實際編程中,很少需要你自己去算一個非十進位,用計算器一類的快速搞定就行了。

因此上述所有內容只是我在水字數,要不然這節課真的太簡單了。

在 py 中把一個數字轉為二進位,只需要使用 bin 方法。

二、八進位(Octal)

八進位一般很少用,它由 0-7 這 8 個數組成,要把一個十進位數轉成 8 進位,短除法除數為 8 即可。

直接來吧,oct(666),看看效果。

可以看到八進位數是用數字 0 和 字母 o 開頭的。

這裡得注意一下字母 o 的大小寫問題,我們做個試驗。

你能發現,無論大寫還是小寫,都能符合我們的預期效果。

但實際上因為編程中的一些習慣,就是那種沒有哪本書哪個條例明確規定了的,但大家都在遵守的行規,大寫字母,通常是用來標識「常量」的。

當然這是我們後期才會學到的知識,現在你記住我們平時開發的時候都用小寫即可。

比如我用 oct 方法轉換一個數的時候,如果把方法名大寫:

這個報錯我們昨天見過,OCT 未被定義,不曉得這玩意兒有啥子功能。

這就是個潛規則,按理說大寫的 OCT 它應該是個常量的名字,而不是作為方法的名字。

三、十進位(Decimal)

十進位裡,主要學習怎麼把一個非十進位的數轉成十進位。

其實是短除法的一個逆運算。

比如把二進位數 0b11101001 轉為十進位。

將一個整數轉為十進位的方法得注意下,並不是所謂的 dec,而是 int,昨天剛學過這個。

四、十六進位(Hex)

十六進位由0-9,a-f組成。a 代表 10,b 代表 11,f 代表 15,超過 15 就該進位了。

可以用 hex 方法求 16 進位,比如 16 的十六進位。

超過了 f,進了一位,所以是 0x10。

五、手寫與印刷

就和我們的英文字母的 a 有個印刷體一樣,一般情況下我們手寫時很少會寫成這樣的形式:

0b1001

0o666

0x999

尤其是八進位那個,你真不怕對方 0 和 o 不分,6 和 b 不分,0x999=0 嗎?

手寫的時候我們一般會這樣寫,看起來比較簡單明了。

另外諸如二進位轉換為八進位的三位一併法,轉十六進位的四位一併法等方法,手算並不要求掌握,這年代都有計算器了,學那玩意兒幹啥。

六、總結

七、作業

這是一篇存稿,我也有存稿的看到了嘛!!!

我寫好稿子的時候還8知道昨天那篇誰第一個做完作業的。

所以直接布置今天的作業,研究以下內容:

1.一個十進位的小數,怎麼轉為二進位?

2.一個十進位的負整數,怎麼轉為二進位?

這個作業和後續課程無關,百度能搜到的,只是擴展下大家的知識層面。

第一個告訴我他學會了的紅包獎勵,一個問題 1 元錢,不驗證真偽性,嚶嚶嚶。

相關焦點

  • 數據的表示二進位八進位十進位十六進位之間的轉換
    數據的表示1.R進位轉十進位R進位轉十進位使用按權展開法二進位 10100.01 = 1x24+1x22+1x2-2七進位 604.01 = 6x72+4x70+1x7-2十進位 1227 = 1x103+2x102+2x101+7x1002.十進位轉
  • 10、進位轉換:二進位、八進位、十六進位、十進位之間的轉換
    將二進位、八進位、十六進位轉換為十進位二進位、八進位和十六進位向十進位轉換都非常容易,就是「按權相加」。所謂「權」,也即「位權」。假設當前數字是 N 進位,那麼:更加通俗的理解是,假設一個多位數(由多個數字組成的數)某位上的數字是 1,那麼它所表示的數值大小就是該位的位權。
  • 二進位,八進位,十進位,十六進位之間的轉換
    計算機中的二進位則是一個非常微小的開關,用「開」來表示1,「關」來表示0。+0+2+1=111011[8進位]0 1 2 3 4 5 6 7 當數位上的值超過7就要進11*83+1*81+1*80=512+8+1=5211011[16進位]0 1 2 3 4 5 6 7 8 9 A B C D E F 當數位上的值超過15就要進1
  • 單片機進位轉換
    同樣是120,轉換成16進位則為:   被除數 計算過程 商 餘數   120 120/16 7 8   77/16 0 7   120轉換為16進位,結果為:78。10,而F表示15)   現在可以看出,所有進位換算成10進位,關鍵在於各自的權值不同。
  • 進位轉換
    除十進位外,我們常用的進位還有十六進位,八進位,當然最重要的就是二進位。十進位用0~9表示數據;十六進位除0~9外,還用A、B、C、D、E和F來表示10~15;八進位則是0~7;二進位只有0和1。任何進位數都可以簡單地轉換成十進位數,只需將展開式中的基數改為該進位基數。
  • 二進位,八進位,十進位,十六進位轉換詳解~
    ①、數碼:用來表示進位數的元素。                                二進位:0,1。                                八進位:0,1,2,3,4,5,6,7                                十進位:0,1,2,3,4,5,6,7,8,9。
  • 二進位、八進位、十進位、十六進位數的轉換方法
    一般計數都採用進位計數,其特點是:(1)逢N進一,N是每種進位計數制表示一位數所需要的符號數目為基數。(2)採用位置表示法,處在不同位置的數字所代表的值不同,而在固定位置上單位數字表示的值是確定的,這個固定位上的值稱為權。
  • 計算機的語言——二進位,十進位、八進位、十六進位與二進位之間的轉換
    而C程序代碼中的整數常量,為了書寫方便,用十進位、八進位、十六進位表示,比如:十進位整數123、-23、+99等。而無論十進位、八進位還是十六進位數據在計算機中表示是轉換成二進位編碼表示,計算機中只存在二進位。
  • 二進位、八進位、十進位和十六進位數之間的轉換方法
    因為:4567=4x103+5x 102+6x 101 +7x1003、數的位權表示:任何一種數制的數都可以表示成按位權展開的多項式之和。111771610000201081000108171000121112.二進位/八進位/十進位與十六進位之間各自的轉換規律,看懂下方例題,多練習,1).R進位轉換為十進位
  • python進位轉換:十進位轉二進位的用法
    我們在學習python時候肯定會碰到關於進位轉換,其實這是非常簡單的,這個就像小學學習數學乘法口訣意義,只要記住轉換口訣即可輕鬆應用,一起來看下具體的操作內容吧~一、python進位轉換dec(十進位)—> bin(二進位)dec(十進位)—>
  • 個人總結——二進位、十進位、十六進位轉換的方法
    近期和同事溝通時發現很多小夥伴多進位的轉換不太清晰,所以趁著周末自己總結了一下和大家分享想,下面先了解下定義。
  • 6、計算機進位之二進位、十進位、十六進位之間的轉換
    4、進位之間的轉換4.1、正整數的十進位轉換二進位將一個十進位數除以二,得到的商再除以二,依此類推直到商等於一或零時為止,倒取除得的餘數,即換算為二進位數的結果由於計算機內部表示數的字節單位都是定長的,以2的冪次展開,或者8位,或者16位,或者32位....。於是,一個二進位數用計算機表示時,位數不足2的冪次時,高位上要補足若干個0。本文都以8位為例。
  • scratch+程小奔機器人實現「進位轉換」(十進位轉二進位)
    十進位→二進位→解釋;2→10→二的一次方;4→100→二的二次方;8→1000→二的三次方;16→10000→二的四次方;下面我出三道題大家來試著做一下:將下列十進位數字轉換成二進位:23;27;35;思路1:這是我經常用的辦法:23=16+7=16+4+3=2的四次方+2
  • 三分鐘熟悉進位轉換與位運算
    位運算則是在程序中對二進位數的一元和二元運算操作。在 JDK 以及框架源碼中都存在進位轉換和位運算的身影,作為開發人員應該熟悉基本的進位轉換和位運算(最起碼得能看懂吧)。進位轉換例如,十進數的 13,二進位的 1101,他們表示相同的數值,只是不同的表現形式而已,那麼不同進位之間如何相互轉換呢?
  • 二進位-八進位-十進位-十六進位之間的相互轉換
    10年前,在大學裡學習了數字電路,課本中講到了進位之間的相互轉換
  • 計算機基礎進位轉換(二進位、八進位、十進位、十六進位)
    1.十進位轉R進位1.1 十進位轉二進位十進位整數轉二進位十進位整數轉換成二進位採用「除2倒取餘」,十進位小數轉換成二進位小數採用
  • 二進位轉換為十進位和十進位轉換為二進位的方法
    各位小夥伴們大家好,在之前的文章中小編也介紹了關於二進位轉十進位的方法,這次小編知道了一個更簡單的方法,具體如下:比如我們要把28轉為二進位:28轉換為2進位先用2的n次方來表示28這個數,然後用2的n次方乘以1或者乘以0,相加來湊成與之相等的數,得到的1或者是0,根據這個表格,從左往右把二進位數字湊在一起,11100就是28的二進位了。
  • 數理轉換,互為質數與進位轉換
    先說一下進位:十進位裡逢十進一,1/2就是0.5;2進位裡逢二進一,1/2就是0.1;4進位裡逢4進一,1/2就是0.2;6進位裡逢6進一,1/2就是0.3。那在3進位裡呢?如17/32採用32進位,則小數表示為0.17。有限小數的本質是分母因式分解後的幾組因數,必須都是進位數的因數,比如1/2,1/4,1/5,1/8,1/10,1/16,1/20,它們之所以是10進位的有限小數,就是因為它們的分母最終只能分解為2和5這兩組進位因數。20進位的進位因數仍是2和5。3進位為3,4進位為2,5進位為5,6進位、12進位為2和3等。
  • BASIC-12十六進位轉換為八進位
    題目問題描述給定n個十六進位正整數,輸出它們對應的八進位數。輸入格式輸入的第一行為一個正整數n (1<=n<=10)。接下來n行,每行一個由09、大寫字母AF組成的字符串,表示要轉換的十六進位正整數,每個十六進位數長度不超過100000。
  • MATLAB數據進位轉換
    MATLAB中,數據的運算、讀取和存儲過程有時會涉及到進位的轉換。不了解進位轉換方法的話會非常惱火。1、單個數據轉換比如我們想知道一個十進位數的二進位表示,來看具體的位置1還是0.這時可以用dec2bin函數。