C语言学习(long和char强制类型转换)
2024年10月14日 19:49
C语言学习(long和char强制类型转换)
在不同的计算机架构中,数据的存储方式可能不同。大端(Big-endian)和小端(Little-endian)是两种常见的字节序。在大端系统中,数据的高位字节存储在内存的低地址端,在小端系统中,数据的低位字节存储在内存的低地址端。由于long类型通常占用4字节(32位,linux64下占用八字节,不影响本文通用性),而char类型占用1字节(8位),在强制转换时,只有long的最低8位会被转换为char。这意味着除了最低8位之外的其他位将被丢弃。如果long类型的值是负数,那么在转换为char时,符号位会被扩展。在大多数情况下,这会导致char类型的值变成一个负数,但由于char类型通常以无符号数处理,所以这个负数会被解释为一个正数。
示例如何将long类型转换为char类型: