這里利用匯編的思想
思路:1、大端轉換為小端模式就將大端的高位和低位的值進行交換,先將高位清零然后右移到低位,低位清零左移到高位,然后兩者再進行或(|)運算,就得到小端模式
2、小端轉換為大端模式就將小端的高位和低位的值進行交換,先將高位清零然后左移到高位,低位清零右移到低位,然后兩者再進行或(|)運算,就得到大端模式
主要注意的是機器的位數:決定了移位數以及清零時高低位所使用的數的大小和位數
大端轉換成小端模式:
32位:
#define swap32Big2Little(x) ( ( (x)&(0x0000ffff) ) << 32 | ( (x)&(0xffff0000) >> 32 )
64位:
#define swap32Big2Little(x) ( ( (x)&(0x00000000ffffffff) ) >> 64 | ( (x)&(0xffffffff00000000) >>64 )
小端到大端是一樣的,因為以上的宏主要是實現了高位和低位的相互交換