char c = 128 用%x打印出来为什么是ffffff80


问题描述

当 char c= 0x80; printf("%x\n", c);打印结果是ffffff80


原因分析:

因为 char的取值范围是 -128 到127. 当定义char c = 128时, 已经溢出。c 在内存中的二进制为1000 0000, 最高位是符号位, 1是表示负数,用 %x 打印的时候,会自动扩展为32bit 的有符号数的形式,那么就会在前面填充 24 个 1, 就是 ffffff80


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部