| 網(wǎng)站首頁 | 關(guān)于我們 | 開發(fā)優(yōu)勢 | 產(chǎn)品展示 |
| 合作企業(yè) | 新聞動態(tài) | 聯(lián)系我們 | 電話聯(lián)系 |
文章作者:濟(jì)南軟件開發(fā) 時間:2016年12月20日
以下講的都是用二進(jìn)制形式打開文件。網(wǎng)上有很多struct模塊的文章,下面是我做的小實驗。
1.對于c里面的fwrite寫入一個單字節(jié),寫的就是它的二進(jìn)制。如3,寫入文件就是二進(jìn)制0x03,它并不是3的ascii碼,即0x33;而python的struct模塊與它一樣,例如val = struct.pack('B', 3),返回的val是字符串'0x03',write寫入的參數(shù)必須字符串類型,因此可以直接將val寫入文件。如果此時用read讀一個字節(jié)出來,它是二進(jìn)制'0x03',不能顯示為正常的ascii碼。必須通過struct.unpack('B', val)轉(zhuǎn)成有意義的十進(jìn)制3輸出。
2.對于python的write,它只接受字符串類型的參數(shù)。當(dāng)寫入十進(jìn)制3的時候,它會被轉(zhuǎn)成'0x33'即它的ascii碼存儲。如果用read讀出來它,可以print出來的值是3.但是此時如果用struct.unpack('B', val)轉(zhuǎn)換的話,print出來的就是51。
簡單而言,對于數(shù)字3,直接write寫的是整數(shù)3的ascii碼二進(jìn)制的字符串;而通過struct是將3轉(zhuǎn)為自身的二進(jìn)制的字符串。
想要了解更多詳情歡迎來電咨詢18678812288
登陸網(wǎng)址:m.h6244.cn。
聯(lián)系人:王經(jīng)理。