第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么這個二進(jìn)制文件的大小是相等的,盡管它們不應(yīng)該?

為什么這個二進(jìn)制文件的大小是相等的,盡管它們不應(yīng)該?

達(dá)令說 2021-09-02 19:48:06
通過編寫簡單的 python 腳本,我遇到了一個奇怪的問題:具有不同內(nèi)容的兩個文件具有相同的大小。所以,我有兩個相同的二進(jìn)制數(shù)據(jù)列表,一個在字符串中,一個在 int 中:char_list = '10101010'int_list = [1, 0, 1, 0, 1, 0, 1, 0]然后,我將列表轉(zhuǎn)換為字節(jié)數(shù)組:bytes_from_chars = bytearray(char_list, "ascii")bytes_from_ints = bytearray(int_list)打印出來,給我這個結(jié)果:bytearray(b'10101010')bytearray(b'\x01\x00\x01\x00\x01\x00\x01\x00')但是,這沒關(guān)系。將此數(shù)據(jù)寫入磁盤:with open("from_chars.hex", "wb") as f:    f.write(bytes_from_chars)with open("from_ints.hex", "wb") as f:    f.write(bytes_from_ints)并且文件大小相同,但文件包含的數(shù)據(jù)不同!ls -l:文件的十六進(jìn)制轉(zhuǎn)儲:我的問題是,為什么文件的大小相等?就像我現(xiàn)在一樣,要寫入 0 或 1 的值,我們需要 1 位,而要寫入 30 或 31 的十六進(jìn)制值,我們需要 5 位(1 1110 和 1 1111)
查看完整描述

1 回答

?
胡子哥哥

TA貢獻(xiàn)1825條經(jīng)驗 獲得超6個贊

要寫入0or的值,1您不需要一個位。你怎么能告訴之間的差異3 = 11或有兩個1?

在這兩種情況下,您都在編寫 8 個字節(jié)的數(shù)組,而在第一種情況下,您使用整個字節(jié)來編寫字符。
把它想象成從字母0和寫一個詞1,這個詞10000 0001,如果沒有0s開頭,你將無法說出這個詞是什么。


查看完整回答
反對 回復(fù) 2021-09-02
  • 1 回答
  • 0 關(guān)注
  • 165 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號