endianness

    1熱度

    1回答

    我的機器工作在小端。 我必須閱讀使用C + + std :: ios ::二進制一些文件與大端編碼。有沒有什麼標準和快速的方法來做到這一點? 就目前而言,看了原始數據後,我做到以下幾點: (讀取double) char raw [8]; double d = 0; //maybe initialization is not needed file.read(raw,8); //4 for an

    0熱度

    1回答

    我很難用文字表達我的問題,但我認爲我可以很直觀地表達它。存儲串abcd,是大和little endian這之間的區別: memory address | 0 | 1 | 2 | 3 | 4 | 5 | 6 | ... little endian | d | c | b | a | big endian | a | b | c | d | 或者這樣: memory address | 0

    0熱度

    1回答

    請幫我將Java代碼翻譯成Pascal。 評論:在這裏準備數據,8個字節用於營業額計數器(對於每個可能的營業額......都足夠了),但是規範只需要至少5個字節的字節0-7用於營業額計數器,其通過8字節雙補體,大端表示(等於爪哇LONG),字節8-15被設置爲0的負值表示是可能的(非常罕見的) Long turnoverCounter = 50501; ByteBuffer byteBuffer

    0熱度

    1回答

    我正在用C++編寫一個RawFile類(這裏語言無所謂)。但是,我想保持圖書館完全通用,無論它編譯的CPU如何。 現在,我有一個uint16_t swap16(uint16_t value)函數交換兩個字節,並返回一個無符號整數和bool is_bigendian()函數返回true如果系統在big-endian和false否則(我決定忽略PDP-11字節 - 排隊方案,因爲它不太可能遇到)。最後

    -1熱度

    1回答

    我正在嘗試將Matlab腳本更新爲Python,並且遇到單個節的問題。該代碼應該讀取一個二進制文件並將其轉換爲我可以用來繪製圖表的東西。 我有麻煩了MATLAB代碼是這樣的: %reopen the data file using the correct HIFIRST/LOFIRST format if COMM_ORDER==0 fid=fopen(fn,'r','ieee-be

    0熱度

    1回答

    我有問題修復我得到的值的字節順序。 我在想的是將WORD分隔爲兩個,將它們轉換爲十六進制,並將它們存儲在一個數組中。 WORD是「crc_data」,返回到我以前的問題(已回答)。 MODBUS RTU CRC16 calculation 例如: 我接到的代碼 「結果」 數據: crc_data = 0A95 *注:crc_data是數據類型WORD 我是什麼思維將它們分成兩部分,並將它們作爲

    0熱度

    1回答

    我認爲我至少理解了字節序的基礎知識,但是我無法理解我的計算機組織文本中該段落的最後一句。有人可以提供一個例子來說明在這裏做出的觀點嗎? 計算機分爲那些使用最左端或「大端」字節的地址作爲雙字地址的地址與使用最右端或「小端」字節的地址。 LEGv8可以作爲big-endian或little-endian。 由於順序僅在您以雙字和八字節訪問相同數據時很重要,因此很少需要注意「字節序」。 我應該指出「LE

    12熱度

    1回答

    我已經在這個主題上提到了SO中的許多問題,但到目前爲止找不到任何解決方案。這裏提到了一個自然的解決方案:Determining endianness at compile time。 但是,在評論&中提到的相關問題的答案相同。 經過一些修改,我可以用g ++ & clang ++(-std=c++11)編譯一個類似的解決方案,沒有任何警告。 static_assert(sizeof(char) =

    1熱度

    1回答

    我的應用程序將來自服務器的PCM二進制數據傳輸到Web Audio API。 爲了標準化音頻,我用一個DataView 32768傳入數據轉換爲Int16的,將每個樣本,鑄造他們回到浮點32播放之前: var data = new DataView(arrayBuffer); var tempArray = new Int16Array(data.byteLength/Int16Array.B

    0熱度

    3回答

    我有一些小endian編碼字節的文件,我想採取N字節,指定endianess並使用python(任何版本)將它們轉換成十進制數。如何正確地做到這一點?