我有一个“有点”小端序的 ISA。基本内存单位是整数而不是字节。例如
00000000: BEFC03FF 00008000
表示“低”整数是BEFC03FF
,“高”整数是00008000
。我需要读取一些位表示的值。例如位 31 到 47。我在 VS10 (c++) 中所做的工作在使用相关掩码并检查var & mask
. 这样做合法吗?我对 uint64_t 位的排列做了一些假设——合法吗?我可以假设对于非常编译器和每个操作系统(不依赖于硬件),uint64_t 中的位排列都是这样的吗?