大小端轉換

2021-10-03 20:37:34 字數 778 閱讀 4826

short型別:

public static short reverseushort(short value)

簡單分析一下:short型別占用16位,也就是兩個位元組,大小端只需要將兩個位元組互換一下就行。採用位操作,通過和 0x00ffu進行與運算,拿到第二個位元組的內容,然後左移8位,將其放置到第乙個位元組的位置;然後繼續和 0xff00u 進行與運算,拿到第乙個位元組的內容,將其右移8位,放置在第二個位元組的位置;最後將兩部分資料進行或運算,在強制轉換為 short 型別,完成。

int型別:

和short型別類似,只不過2個位元組變成了4個位元組,將 1,2,3,4位元組倒序一下變成 4,3,2,1,看**:

public static int reversefourbytesdata(int value)

待轉換的資料先和 0x000000ffu進行與運算,拿到第4個位元組的內容,將其左移24位,放置在第乙個位元組位置;

然後待轉換的資料和 0x0000ff00u 進行與運算,拿到第3個位元組的內容,將其左移8位,放置在第二個位元組位置;

繼續將待轉換資料和 0x00ff0000u  進行與運算,拿到第2個位元組的內容,將其右移8位,放置在第三個位元組的位置;

最後將待轉換資料和 0xff000000u 進行與運算,拿到第1個位元組的內容,將其右移24位,放置在最後的位置。

然後進行強制型別轉換,返回int型別的資料就行了。

整個轉換過程就完成了。基本上都是位操作,通過取位元組進行移動來實現。

大小端轉換

大小端轉換方法 include include define tranverse16 x uint16 x 0xff00 8 uint16 x 0x00ff 8 define tranverse32 x uint32 x 0xff000000 24 uint32 x 0x00ff0000 8 uin...

Java 大小端轉換

package nlp.nlp 小端資料,byte轉換 public class byteconvert public static final int unicode len 2 int轉換為小端byte 高位放在高位址中 param ivalue return public byte int2b...

大小端模式轉換

不同機器內部對變數的位元組儲存順序不同,有的採用大端模式 big endian 有的採用小端模式 little endian 大端模式是指高位元組資料存放在低位址處,低位元組資料放在高位址處。小端模式是指低位元組資料存放在低位址處,高位元組資料放在高位址處。在網路上傳輸資料時,由於資料傳輸的兩端可能...