|
1
|
| jeremysprofile Subin George · 技术社区 · 8 年前 |
|
|
1
3
正在尝试字节反转a 已签署 整数听起来不像是一个定义良好的算术运算,因为最高有效位的行为是整数符号的指示符,在处理整数变量时,将其移到其他位置没有多大意义。
更有可能的是,您可能有一个表示32位有符号整数的4字节序列,但需要进行字节反转,以便在不同的CPU端之间进行转换。要做到这一点,您可以简单地将数量视为无符号的,然后让
或者,稍微安全一些:
这是因为当对相同位深度的整数应用强制转换操作时,实际上会保持内存中的表示不变。在进行字节反转时,这会忽略符号的重要性(以及与有符号整数的二补表示相关的任何细微之处)。我不确定这种行为是否受到C标准的保证(这可能是语言律师的问题),但这可能是一种非常常见的行为。描述位于
www.cplusplus.com
指示如果系统对其有符号整数(非常常见)使用两个补码表示,则在
|
|
|
2
2
只有当本机系统是little endian时,这才有意义,因为在big endian系统上将数据转换为带符号的little endian有什么意义?
所以在一个小端系统上,只需将大端整数转换为无符号整数,使用
|
|
no one special · 32位整数缩放,无溢出 8 年前 |
|
|
Benn Tan · 比特操作:更难翻动硬币 8 年前 |
|
|
Ganesh Thampi · 使用位运算符将十进制转换为二进制 8 年前 |
|
|
Ganesh Thampi · 使用位的奇偶程序 8 年前 |
|
|
datapanda · 三维网格的莫顿反向编码 8 年前 |
|
|
rubyquartz · 交换无符号短整数的字节 8 年前 |
|
|
John Proctor · C中位的掩蔽范围 8 年前 |
|
|
Areg Sarvazyan · 从无符号int中提取位的函数 8 年前 |
|
|
user9505617 · 按位异或0xFFFFFFFF? 8 年前 |