C语言:整形存储

cs 复制代码
#include<stdio.h>
int main() {
	char a = -1;
	signed char b = -1;
	unsigned char c = -1;
	printf("a=%d,b=%d,c=%d", a, b, c);
	return 0;
}

b与a都是有符号数结果一样。a的signed相当于省略了。

运行结果

整形提升:整形算术运算总是以至少以缺省整型类型的精度来进行的,为了获取这种精度,表达式中的字符和短整型操作数在使用之前转换为普通整型,这种转换称为整型提升。

整形提升时有符号数高位补符号数,无符号数补高位0。

截断:-1是int型占4个字节,char占一个字节(-128~127)(8bit),将-1赋值给char会发生截断现象。将32位(4个字节)截断成8位(1个字节)。

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

运行结果

注意:是打印无符号数,而不是a是无符号数,整形提升时按照有符号数进行提升。无符号数没有原码,补码,反码的概念,直接将内存中的补码按照无符号数转换成十进制。

cs 复制代码
#include<stdio.h>
int main() {
	int i = -20;
	unsigned int j = 10;
	printf("%d\n", i+j);
	return 0;
}

运行结果

注意:%d是有符号数。

相关推荐
神仙别闹3 小时前
基于 C++ 实现(控制台)学生成绩管理系统
开发语言·c++
伞伞悦读4 小时前
【第36期】Python 目录与路径详解:pathlib、文件遍历、创建、复制、移动和删除风险
开发语言·python
free-elcmacom6 小时前
C语言字符指针与字符串字面量——从一道“剑指 Offer”笔试题说起
c语言·visual studio
2601_966949657 小时前
只拿到股票代码还不够:量化程序到底还需要哪些标的信息?——从数据建模开始理解股票元数据
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
m0_734571767 小时前
深入理解5g <十八>传输块tbsize的计算
开发语言·5g
RAN11426760089 小时前
1.3第一个程序的介绍
开发语言·qt
blue_ice .9 小时前
Verilog DDS 数字信号发生器:DAC 输出模拟波形与 ADC 回采观测
开发语言·单片机·嵌入式硬件·fpga开发
远翔调光芯片^1382879887210 小时前
ECP5702能芯科技PD取电芯片在市场上的优势有哪些?
开发语言·人工智能·单片机·嵌入式硬件·智能家居
泡海椒10 小时前
规则引擎对比:JQuick-Java vs Drools 轻量场景选型对比
java·开发语言
泡泡鱼(敲代码中)11 小时前
Python 容器类型学习笔记:列表、元组、字典、集合
开发语言·笔记·python·pycharm