位 位元組操作備忘

2021-09-29 19:36:56 字數 1201 閱讀 9838

資料型別:

1、char: 乙個位元組,8位二進位制、2位16進製制0x00-0xff,十進位制:0-255(unsigned) 或 -128-127(signed)

2、short:二個位元組,16位二進位制、4位16進製制0x0000-0xffff ,十進位制:0-65535(unsigned) 或-32768-32767(signed)

3、long:四個位元組,32位二進位制、8位16進製制  ,十進位制:以此類推。

4、double:八個位元組,64位二進位制、16位16進製制, 十進位制:可能有點特別,沒研究。

有無符號:

無符號:所有二進位制位都表示數字,原碼計算數字大小。 例:1111 0000——128+64+32+16 = 240

有符號: 第一位表示符號,其餘二進位制位表示數字,計算值:正數原碼計算,負數:-(補碼=反碼+1)。例:1111 0000[原碼]—— -(0000 1111[反碼] + 1)[補碼]= -0001 0000 = -16

位操作:

兩個char(short)型別單(雙)位元組的二進位制值 合成short(long)型別雙(四)位元組二進位制值:

char valuelo, valuehi; short value = valuehi<<8 | valuelo & 0xff;

short valuelo, valuehi; long value = valuehi<<16 | valuelo & 0xffff;

特別注意:當兩個8位/16位二進位制轉成16位/32位二進位制時,首先每乙個8位/16位二進位制數的位數會先增加到16位/32位,而後進行位操作。也就是在位操作之前,資料需要先補位,補位涉及到乙個關鍵問題:有符號數的負數補位會將高位所有二進位制位補為1,而其他情況均以0補位。因此,一定要給兩個被合成資料的低位 &0xff或0xffff,來將補位強制為0。以保證數值正確。

乙個short(long)型別雙(四)位元組的二進位制值 拆分char(short)型別單(雙)位元組二進位制值:

short value;

char valuelo = value & 0xff;

char valuehi = (value >> 8) & 0xff;

long value;

short valuelo = value & 0xffff;

short valuehi = (value >> 16) & 0xffff;

注意:一般先寫低位,防止高位移位操作改變原資料。此例中沒有該問題,但要注意。

js 位元組操作

獲取byte的高4位bit和低4位bit function getheight4 ata function getlow4 data 十六進製制字串轉位元組陣列 十六進製制字串轉位元組陣列 每2個字串轉換 100102030405060708 轉為 16,1,2,3,4,5,6,7,8 param ...

java io操作之位元組操作

抽象類為inputstream和outputstream inputstream為輸入流 outputsteam為輸出流 一般用抽象流定義物件,具體的實現流來實現物件 例如 inputstream in new fileinputstream new file url 常見的輸入,輸出流操作案例如下...

IO流檔案位元組操作

檔案 的拷貝涉及兩個過程 將乙個檔案的內容通過程式讀取出來,然後通過程式將讀取的內容寫入待拷貝的檔案中。在整個過程中,程式起中轉作用,它既有檔案輸入也有檔案輸出的作用。程式使用fileinputstream讀取檔案內容,使用fileoutputstream將內容寫入新的檔案,實現的方法如下 publ...