【C语言】【数据存储】用%u打印char类型?用char存128?

1.题目一:

c 复制代码
#include <stdio.h>
int main()
{
 char a = -128;
 printf("%u\n",a);
 return 0;
}

%u 是打印无符号整型

解题逻辑:
1. 原反补互换,截断

-128

原码:10000000...10000000

补码:11111111...10000000

(char类型占 1 个字节,8 个bit位)截断:10000000

2.整型提升:

char 默认 signed char 所以高位补符号位:11111111...10000000

3.%u打印的结果:

%u 是打印无符号整型,那么补码 11111111...10000000 中第一个 1 不是符号位,此时原码与补码相同,打印出来的就是二进制11111111...10000000所代表的十进制数:4294967168

2.题目二:

c 复制代码
#include <stdio.h>
int main()
{
 char a = 128;
 printf("%u\n",a);
 return 0;
}

char 类型的存储范围是 -128~127 那么存了 128怎么打印?

必须将 128从低位截断

截断后是 10000000

整型提升:11111111...10000000

(整型提升时,只与变量类型有关,有符号的往高位加符号位,无符号的高位补 0!!)

所以下面的步骤和上一题一样

结果也是4294967168

相关推荐
三无少女指南6 分钟前
开发者环境配置最佳实践:编辑器Cursor ,VS Code的上位体验实现 AI 与 WSL 联动
运维·c语言·数据库·windows·git·编辑器
kyle~6 分钟前
Python---watchdog文件系统监控库
开发语言·python·操作系统·文件系统
我命由我123459 分钟前
Photoshop - Photoshop 工具栏(68)内容感知移动工具
学习·ui·职场和发展·求职招聘·职场发展·学习方法·photoshop
山岚的运维笔记12 分钟前
SQL Server笔记 -- 第80章:分页
java·数据库·笔记·sql·microsoft·sqlserver
开开心心就好19 分钟前
文字转语音无字数限,对接微软接口比付费爽
java·linux·开发语言·人工智能·pdf·语音识别
马猴烧酒.21 分钟前
【JAVA算法|hot100】哈希类型题目详解笔记
java·笔记
xyq202422 分钟前
Perl 发送邮件:全面指南
开发语言
cui_ruicheng23 分钟前
C++ 继承(下):多继承、菱形继承与虚继承
开发语言·c++
Blue16°23 分钟前
Day33:英语翻译 + 单词打卡
笔记
派大星-?29 分钟前
自动化测试五模块一框架(上)
开发语言·python·测试工具·单元测试·可用性测试