tft每日頭條

 > 生活

 > python将十進制整數轉換成二進制

python将十進制整數轉換成二進制

生活 更新时间:2024-07-28 20:24:47

注:本文所有代碼均經過Python 3.7實際運行檢驗,保證其嚴謹性。

Python中整數的進制

Python中的整數默認都是十進制的,其表示方法和我們日常看到的沒有不同,任意給定一個正數比如a = 49,都默認變量a代表的是十進制的整數。

Python語言一樣可以用二進制、八進制和十六進制來表示整數,與十進制表示法不同,這些進制法的表示需要在整數字面值加一個前綴即可。 十進制demical——無前綴。如338。 二進制binary——0b或OB前綴,如0b1011001。 八進制octal——0o前綴,如0o557。 十六進制hexadecimal——0x前綴,如0x16f。

python将十進制整數轉換成二進制(Python随筆二進制八進制)1

Python

一、二進制、八進制、十六進制的整數轉換為十進制的整數

如何把十進制數number轉換成二進制、八進制和二進制的整數?

方法是直接使用Python内置函數bin(number)、oct(number)和hex(number)。 簡單而粗暴。

a = 16 #a是一個十進制整數。 bin(a) Out[39]: '0b10000' oct(a) #十進制轉換成八進制。 Out[40]: '0o20' hex(a) #十進制轉換成十六進制。 Out[41]: '0x10'

二、十進制的整數轉換為二進制、八進制、十六進制的整數

如何把二進制、八進制和十進制整數x轉換成十進制的整數?

同樣一個函數就能搞定,但是這個轉換相比上面的要略微麻煩一點點。 方法是用int()這個内置函數,可能有人看到這點就覺得沒難度了。但,其實這裡很容易出錯。

int()是日常使用頻率較高的函數,一般用于把一串隻有數字的字符串轉換為int整數,或者浮點數向零取整。比如:

int('98999') Out[34]: 98999 type('98999') Out[35]: str int('98999') Out[36]: 98999 type(int('98999')) Out[37]: int int(-3.5) #向零取整。 Out[38]: -3 int(3.5) #向零取整。 Out[39]: 3

但是,如果要用int()來進行不同進制之間的轉換時,其用法就有了一點變化。 int()的完整語法是 int(x, base=10),關于此函數,官方的解釋是這樣的:

返回一個基于數字或字符串 x 構造的整數對象,或者在未給出參數時返回 0。

……

如果 x 不是數字,或者有 base 參數,x 必須是字符串、bytes、表示進制為 base 的 整數字面值 的 bytearray 實例。

換句話說,默認base=10,即十進制;若是base要更改默認情況,比如改成base=2,那麼它表示前面的x是二進制整數時,x的類型就有了變化,不能是int整型,而必須是str字符串類型了。

所以,把二進制、八進制和十進制整數x轉換成二進制的整數有兩種情況:

第一種情況很簡單,以二進制轉換為十進制為例,把二進制的整數表示為Python語言規定的那樣,人覺得别捏但機器能識别的形式:'0b101'。這時直接使用int()函數即可。加了'0b'開頭的二進制數,此時就是一個int,可以假設它是用十進制的形式來表示二進制數。

如下面所給的例子:

x = 0b101 type(x) Out[50]: int #此時type()作用于二進制整數x時,被識别為int類型。 int(x) Out[51]: 5

第二種情況複雜一些,但用得可能更多一些。對于人的思維,輸入一個八進制數,比如342,會直接輸入342,而不會去帶前綴'0o'。對于這樣的數字,如何轉換成二進制才是我們正常思維容易遇到的問題。

前面對int(x, base=10)有過解釋,當base不再是默認的10的時候,x不能再是int型數據,而必須轉為str字符串類型,此函數才能起作用,否則會報錯。拿下面的例子作說明。

把一個八進制的整數754轉換成十進制的整數,結果是多少?

x = 754 #把八進制整數754先轉換為字符串類型,再使用int()函數。 int(str(x), 8) Out[55]: 492

雖然在思維上更容易接受些,但是從實現層面上講,如果先把754前面加上0o直接表示為Python可識别的八進制整數,再直接使用int()函數會更不容易出錯一些。個人更推薦第一種轉換方法。

小結

十進制整數number轉換為二進制、八進制、十六進制的整數,直接使用Python内置函數bin(number)、oct(number)和hex(number)即可。

二進制、八進制、十六進制整數x轉換為十進制的整數,先把它們統一表示為Python可識别的樣式,二進制前面加前綴0b,八進制前面加前綴0o,十六進制前面加0x,再直接使用int(x)即可得到所需要的十進制整數。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved