python 40位的数减个位数_Python——进制表示与转换
在前面兩篇文章中介紹了基本的數據類型(Python——記錄3——數據類型1,Python——記錄4——數據類型2),其中講到浮點數的計算是通過轉換成二進制進行的,那么到底什么是二進制,以及計算機到底包含了哪些進制呢?
其實0和1是計算機最基本的儲存單位,而0和1正是我們所說的二進制。在生活中,我們用到的進制為十進制,即“逢十進一”,那么最大單個數則為9,由此可知在二進制中,最大的數為1。此外,計算機也支持八進制和十六進制,同樣,八進制最大的數為7;而十六進制最大的數則為f。
在Python中,默認的數值都是十進制,比如17、26、13等,當然也可以表示二進制,比如:
b = 0b1010110110print(b)c?=?0b101210??#?最大數為1可以看出二進制在Python中是以0b開頭,b輸出的值默認為十進制的694;但是如果在二進制中出現2的話那么便會報錯,因為二進制最大的個位數為1。
八進制、十六進制
a = 0o34print(a)b = 0x23print(b)c = 0x2aprint(c)對于八進制是以0o開頭,同樣八進制中最大的個位數值不能超過7;十六進制是以0x開頭,但是十六進制最大值為15,可是如何表示兩位數呢?
在十六進制中,計算機是用0~9、a~f來表示16個數的表示,a就表示10,以此類推,f表示15。
十進制轉二進制
將十進制的數字轉換成二進制只需要不斷除以2,然后再將余數倒著從下往上寫就是二進制,我們以13舉例,如下圖所示,最終結果為0b1101
了解了十進制轉二進制的原理,那么Python中如何進行轉換的呢?
a = 13print(bin(a))bin()內置函數可以將數字轉換成二進制,結果一樣
二進制轉八進制
在二進制中習慣用八位表示一個字節,比如1 0111,那么習慣上會補上0形成8位,及0001 0111;那么對于二進制轉八進制中一般使用三個二進制來表示一個八進制,比如利用上面的二進制1101進行八進制轉換:
將1101補齊成8位,為00001101,再以三個位數為一組進行分組,可分為001和101,再將001和101轉換成十進制并進行組合即可,即1101轉換成八進制為15;同樣,Python也可以運用內置函數進行轉換:
a?=?0b1101print(oct(a))通過oct()內置函數可以將數值轉換成八進制,結果一樣
二進制轉十六進制
將二進制轉為十六進制思路與轉八進制相同,不同的是將二進制每四位分為一組,再轉為十進制進行組合,1101轉為十進制為13,那么對應的十六進制為d
a?=?0b1101print(hex(a))通過hex()內置函數可以將數值轉換成十六進制,結果一樣
二進制轉十進制
在以上的進制轉換中都涉及了二進制轉十進制的問題,那么二進制如何轉換成十進制的呢?仍以1101舉例:
從最后位向前依次對應寫上2^0、2^1、2^2……,再進行一對一相乘相加,即1*2^3+1*2^2+0*2^1+1*2^0=13,便是對應著十進制中的13
a?=?0b1101print(a)通過以上的學習,對應二進制、八進制、十進制和十六進制有了一個更加深刻的了解,以及對他們之間的相互轉換也有了更加深刻的認識,那么之前提到的在整數型轉換過程中是否真的只能出現數值了呢?我們下期再見
參考資料:
https://www.bilibili.com/video/BV1qK411n7gQ?p=25
總結
以上是生活随笔為你收集整理的python 40位的数减个位数_Python——进制表示与转换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: halcon python缺陷检测_Ha
- 下一篇: python 查找算法_python快速