的整数我想的整数的最低两个字节打包成另一种在整数,一个卡在此包装位到C++
Q
包装位到C++
2
A
回答
4
尾段独立溶液:
x = ((y >> 0) & 0xFF) |
((y >> 8) & 0xFF);
+0
为什么?他在这两种情况下都使用整数类型,所以不会有任何endian问题。 – 2014-11-03 17:06:02
+1
@JamesKanze我只是想说一些其他的解决方案,比如'uint8_t * ptr =(uint8_t *)&the_int; x = * ptr; PTR ++; x | = * ptr;'会依赖于endian,因为你不知道'ptr'是否会给你ms字节或ls字节。如果你通过1 uint32_t和4 uint8_t组合来解决问题,那么同样的问题。 – Lundin 2014-11-03 20:30:00
1
如果我理解你正确的足够的解决方案应该是这样的:
another_integer = first_integer & 0xFFFF // which is 65536, which is 2^16 so 0000000011111111 binary (for 4 byte integer)
这样你会分配值的两个较低的b first_integer到another_integer的ytes通过使用简单的AND掩码:
0101110011101010
0000000011111111 AND
----------------
0000000011101010
相关问题
- 1. 包装一个int到C++位域
- 2. 包装位图
- 3. C#包装到开罗库
- 4. Python包装到C回调
- 5. C#HTML到PDF WkHtmlToPdf包装
- 6. 用C++/CLI包装器返回位图
- 7. C包装C++
- 8. 包装C#C++
- 9. C++ LPSTR到C#字符串.NET包装
- 10. C++到C#包装空异常错误
- 11. 安装NPM包到不同的位置
- 12. SlickGrid C#包装
- 13. C#包装
- 14. 包装malloc - C
- 15. c#将webdriver包装到windows服务中
- 16. 包装一类的字段到C#
- 17. C++ Speex到Flac包装器/库
- 18. SWIG:从纯C++到工作包装器
- 19. Objective-C中包装C++类
- 20. LAPACK包装的C/C++
- 21. 包装C#CLI类为C#
- 22. 从C#与C++/CLI包装
- 23. 在C#中包装Visual C++#
- 24. C可变包装
- 25. C包装for pygments
- 26. C++ CLI包装器
- 27. C#包装SQLite的
- 28. C#包装原语
- 29. C#的包装器
- 30. 通用包装C++
'X =(Y&为0xFFFF)+(X〜0xFFFF的);'? – Borgleader 2014-11-03 15:17:58
@Borgleader最低2字节,最低2位 – PeterT 2014-11-03 15:18:26
@PeterT哦误读了。在我的防守中,这个想法是一样的,只有面具变化。 – Borgleader 2014-11-03 15:20:39