大小端转换

// C++

1 //32位的转换
 2 
 3  Int32 swapInt32(Int32 value)
 4 
 5 {
 6 
 7      return ((value & 0x000000FF) << 24) |
 8 
 9               ((value & 0x0000FF00) << 8) |
10 
11               ((value & 0x00FF0000) >> 8) |
12 
13               ((value & 0xFF000000) >> 24);
14 
15  }
16 
17  
18 
19 // 64位的转换 
20 
21 public static UInt64 Reverse64Bytes(UInt64 value)
22 
23 {
24 
25  return (value & 0x00000000000000FFUL) << 56 | (value & 0x000000000000FF00UL) << 40 |
26 
27         (value & 0x0000000000FF0000UL) << 24 | (value & 0x00000000FF000000UL) << 8 |
28 
29         (value & 0x000000FF00000000UL) >> 8 | (value & 0x0000FF0000000000UL) >> 24 |
30 
31         (value & 0x00FF000000000000UL) >> 40 | (value & 0xFF00000000000000UL) >> 56;
32 
33 }

// float 型字节序转换 配合union使用

1 union intWithFloat
 2 
 3 {
 4 
 5         Int32 m_i32;
 6 
 7         float m_f32;
 8 
 9 }
10 
11  
12 
13 float swapFloat32(float value)
14 
15 {
16 
17         intWithFloat i;
18 
19         i.m_i32 = value;
20 
21         i.m_f32 = swapInt32(i.m_i32);
22 
23         return i.m_f32;
24 
25 }

原文链接: https://www.cnblogs.com/-sev-/p/5067132.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/226253

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月13日 下午1:07
下一篇 2023年2月13日 下午1:07

相关推荐