實現大小端之間的轉換宏,包括32位和64位的數


這里利用匯編的思想

思路:1、大端轉換為小端模式就將大端的高位和低位的值進行交換,先將高位清零然后右移到低位,低位清零左移到高位,然后兩者再進行或(|)運算,就得到小端模式

        2、小端轉換為大端模式就將小端的高位和低位的值進行交換,先將高位清零然后左移到高位,低位清零右移到低位,然后兩者再進行或(|)運算,就得到大端模式

 

主要注意的是機器的位數:決定了移位數以及清零時高低位所使用的數的大小和位數

大端轉換成小端模式:

32位:

#define swap32Big2Little(x)    (   ( (x)&(0x0000ffff) ) << 32 |  ( (x)&(0xffff0000) >> 32   )

64位:

#define swap32Big2Little(x)    (   ( (x)&(0x00000000ffffffff) ) >> 64 |  ( (x)&(0xffffffff00000000) >>64  )

 

小端到大端是一樣的,因為以上的宏主要是實現了高位和低位的相互交換

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM