💡
原文中文,约1400字,阅读约需4分钟。
📝
内容提要
在计算机架构中,大端和小端是两种字节序。大端将高位字节存储在低地址,小端相反。将 long 转为 char 时,仅保留最低8位,可能导致数据丢失。char 默认有符号,但在某些平台上可能无符号,影响负数表示。负数通常用二进制补码表示,符号由变量类型决定。
🎯
关键要点
- 大端和小端是两种字节序,大端将高位字节存储在低地址,小端则相反。
- long 类型通常占用4字节,char 类型占用1字节,强制转换时仅保留最低8位,可能导致数据丢失。
- 负数在转换为 char 时,符号位会被扩展,可能导致 char 值变为正数。
- char 类型在C语言中默认是有符号的,但在某些平台上可能被定义为无符号,影响负数表示。
- 示例代码展示了如何将 long 类型转换为 char 类型,转换结果依赖于符号扩展处理。
- 十六进制数通常表示无符号整数,负数需使用有符号整数类型表示,负数在十六进制中通常加上负号。
- 符号由变量类型和上下文决定,十六进制数本身不包含符号信息。
➡️