【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

相关推荐
7***n7510 分钟前
Java构建工具
java·开发语言
u***u68528 分钟前
Kotlin多平台开发实践
android·开发语言·kotlin
暮乘白帝过重山29 分钟前
ArkTS 关键字速查笔记
笔记·arkts
Q***K5532 分钟前
Kotlin与Java互操作指南
java·开发语言·kotlin
星月前端38 分钟前
[特殊字符]面向 ArcGIS for JavaScript(4.x)开发者的「坐标系统(CRS / 投影)」全面解读
开发语言·javascript·arcgis
张丶大帅39 分钟前
别踩白块游戏(附源代码)
c语言·游戏
Wild_Pointer.40 分钟前
技术书籍精读笔记:全景目录
笔记
d111111111d1 小时前
W25Q60简介--SPI通信(笔记)
笔记·stm32·单片机·嵌入式硬件·学习
打工人你好1 小时前
Android 应用逆向分析与架构研究笔记
android·笔记·架构
Dream Algorithm1 小时前
合约持仓量和价格之间的关系
笔记·区块链