python處理二進制
① 如何用python把二進制數轉換為十進制數
length = input("請輸入這個二進制數有幾位數:")
numbers = []
for i in range(eval(length)):
numbers.append(input("請輸入數字:")) #這里有縮進
print(eval("0b"+"".join(numbers)))
然後再改一下縮進應該就行了
② 如何用Python將十進制數字轉為二進制,以及將二進制轉為十六進制
1、將十進制轉換成二進制,利用bin()方法。
③ python怎麼處理二進制流
可以的,二進制是計算機內的表示方法,處理二進制數據是最基本的能力。
如果是二進制字元串轉十進制:
>>> x = '10101010'
>>> int(x, 2)
170
如果是從文件或網路中獲取的數據,要知道某一位是0還是1的話,獲取的數據可以按字元讀取,由於一個字元由8位二進製表示,分別讀取1到8位的二進制值就可以了:
>>> get_char_bit = lambda char, n: (char >> (8-n)) & 1 # 從高到低分別為第1~8位
>>> data = b'ab' # 在python3中字元串默認是unicode,所以加上b前綴兼容
>>> # 在python3中按字元讀取byte字元串是數字,而python2讀出來的卻是字元,但bytearray是一致的都是數字
>>> data = bytearray(data)
>>> result = []
>>> for char in data:
for i in range(1, 9):
result.append(get_char_bit(char, i))
>>> result
[0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0]
④ Python中的文件讀寫-理論知識
Python處理兩種不同類型的文件:二進制文件和文本文件。了解兩者之間的差異很重要,因為它們的處理方式不同。
二進制文件
在正常計算機使用期間使用的大多數文件實際上是二進制文件,而不是文本。比如:Microsoft Word .doc文件實際上是一個二進制文件,即使它只有文本。
二進制文件的其他示例包括:
圖像文件,包括.jpg,.png,.bmp,.gif,等。
文件,包括.doc,.xls,.pdf或者其他文件。
那是因為這些文件都有特殊處理的要求,需要特定類型的軟體來打開它。例如,您需要Excel來打開.xls文件,並使用資料庫程序來打開.sqlite文件。
文本文件
一方面,沒有特定的編碼,可以通過沒有任何特殊處理的標准文本編輯器打開。但是,每個文本文件都必須遵守一組規則:
文本文件必須是可讀的。他們可以(並且經常會)包含許多特殊編碼,尤其是在HTML或其他標記語言中,但您仍然可以說出它的含義
文本文件中的數據按行組織。在大多數情況下,每一行都是一個獨特的元素,無論是指令行還是命令。
此外,文本文件在每行的末尾都有一個看不見的字元,這使文本編輯器知道應該有一個新行。通過編程與這些文件交互時,您可以利用該字元。在Python中,它用「 n」 表示。
在哪裡可以找到Python的文件I / O工具
在Python中工作時,您不必擔心導入任何特定的外部庫來處理文件。Python附帶有「文件庫」,文件I / O工具和實用程序是核心語言的內置部分。
但是在其他語言(如C ++)中,要處理文件,您必須通過包含正確的頭文件來啟用文件I / O工具#include <fstream>。如果您使用java編寫代碼,則需要使用該import java.io.*語句。
使用Python,就沒有必要這樣做,這是因為Python有一組內置函數,可以處理讀取和寫入文件所需的所有內容。
⑤ python讀取C#寫的二進制文件,byte類型unpack
近期有一部分早期記錄數據,C#寫的二進制數據,在讀取的過程中,short和unshort類型還是比較好轉換的,但是碰到byte類型,對照struct的說明是x,設置讀取格式時,這部分會空出來,讀不出來。查看說明C#的byte類型在python是no value,用x讀不出來。因為大概知道數據是整數類型的,於是用b(與B區別,是否有負值),也是1個位元組,和C#中的byte一樣長度,可以正確顯示出來數據。如果是字元類,可以考慮c,s,p。注意變數所佔位元組數。(讀出來數據最好測試驗證一下)。
def readWrite(fname):
with open(fname,'rb') as f:
if fname[-3:] == 'RPT' : #文件格式是RPT格式的二進制文件
data = f.read()
#fmt = 'H16x2H4x2H10x5H2h6H' #數據格式中x會導致數據忽略掉,讀不出來
fmt = 'H16b2H4b2H10b5H2h6H' #採用b替換後,數據格式顯示正常
data1= struct.unpack(fmt,data)
elif fname[-3:] == 'DAY': #文件格式時DAY格式的二進制文件
data = f.read()
fmt = '4i'
data1= struct.unpack(fmt,data)
else:
data1 = '不是指定文件或文件錯誤'
print('不是指定文件')
return data1
⑥ python輸入一個三位數 輸出百位十位個位數字的二進制數
s = 123
for i in list(str(s)):
print(bin(int(i)))
⑦ Python中b101011是合法的二進制數值表示形式
是的,是 Python 中有效的二進制數表示形式。在 Python 中,二進制數使用前綴後跟一系列 and 數字來表示。例如,二進制數可以像在 Python 中一樣寫。b1010110b011010110b101011
下面是在 Python 中使用前綴定義二進制數的示例:0b
回答不易望請採納