Re: [問題] little endian的困擾
※ 引述《poorplus (poorplus)》之銘言:
: 假設unsigned char a[4] = {1,2,3,4}
: n為int型態
: 則memcpy(&n, a, 4)後
: n = 0x04030201
: 除了一個byte一個byte塞進去以外
: 不知是否有好的方法可以快速的讓
: n = 0x01020304
: 謝謝
#define BSWAP32(x) \
((x) << 24) + (((x) & 0xff00) << 8) + \
(((x) >> 8) & 0xff00) + ((x) >> 24)
unsigned int n = '\4\3\2\1';
n = BSWAP32(n);
_assert(n == 0x01020304);
擔心BSWAP32看起來很慢嗎?
放心,最佳化後都是在register操作
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.204.92.148
推
06/16 09:08, , 1F
06/16 09:08, 1F
推
06/16 19:58, , 2F
06/16 19:58, 2F
→
06/16 21:33, , 3F
06/16 21:33, 3F
→
06/17 07:02, , 4F
06/17 07:02, 4F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):