C C 大小端轉換

2021-10-11 03:00:58 字數 611 閱讀 7158

#includeusing namespace std;

unsigned int fun1(unsigned int a)

unsigned int fun2(unsigned int a)

int main()

以unsigned int型別為例,其變數占用四個位元組記憶體空間,假設a=0x11223344,大端儲存,占用空間0x10~0x13,b占用空間0x20~0x23,則讓0x20空間內容等於0x13空間內容,0x21空間內容等於0x12空間內容,0x22空間內容等於0x11空間內容,0x23空間內容等於0x10空間內容即可。

fun1()中,unsigned int(&a)是取a的首位元組記憶體位址,並強制轉化為unsigned int型別資料,後面加3是得到a最後乙個位元組的位址, 即(unsigned int(&a) + 3),對這部分進行char *轉換,是將其轉化為乙個char型別的指向,再其前面加 * 是取該位址的內容。

fun2()中,((char*)&b)類似。

參考:大端模式和小端模式

大小端轉換

大小端轉換方法 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...

大小端轉換

short型別 public static short reverseushort short value 簡單分析一下 short型別占用16位,也就是兩個位元組,大小端只需要將兩個位元組互換一下就行。採用位操作,通過和 0x00ffu進行與運算,拿到第二個位元組的內容,然後左移8位,將其放置到第...

Java 大小端轉換

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