当前位置:网站首页>小小笔记-整型提升(C语言)
小小笔记-整型提升(C语言)
2022-06-30 17:58:00 【风吹电风扇】
写在前面
总算把学校的实训搞完了,现在开始正常更新。
大家好,这里是风扇的小小笔记,本篇笔记简单记录了整形提升的概念、意义以及简单的示例,感谢各位的支持。
整形提升
- 整形提升概念
C的整型算术运算总是至少以缺省整型类型(int)的精度来进行的。为了达到这个精度,表达式中的字符型和短整型操作数在使用之前被转换为普通整型,这种转换称为整型
提升。
- 整形提升意义
表达式的整型运算要在CPU的相应运算器件内执行,CPU内整型运算器(ALU)的操作数的字节长度
一般就是int的字节长度,同时也是CPU的通用寄存器的长度。
因此,即使两个char类型的相加,在CPU执行时实际上也要先转换为CPU内整型操作数的标准长
度。
通用CPU(general-purpose CPU)是难以直接实现两个8比特字节直接相加运算(虽然机器指令
中可能有这种字节相加指令)。所以,表达式中各种长度可能小于int长度的整型值,都必须先转
换为int或unsigned int,然后才能送入CPU去执行运算。
- 整形提升规则
️整形提升时高位补充符号位,无符号类型则高位补0.
- 例子:
以int型和unsigned int型来打印char型数据的过程
int main()
{
char a = -128;
//char 范围-128—127
printf("%d %u",a, a);
return 0;
}
运行结果:
a的值的储存过程:
10000000 00000000 00000000 10000000 -128的原码
原码取反
11111111 11111111 11111111 01111111 -128的反码
反码加一
11111111 11111111 11111111 10000000 -128的补码
a的长度位1字节 a:10000000 补码截断,取最后一个字节
取出a的值:
10000000 a
11111111 11111111 11111111 10000000 a整形提升
补码减一
11111111 11111111 11111111 01111111 提升后的a的反码
符号位不变,其他位取反
10000000 00000000 00000000 10000000 提升之后a的原码
以int形式打印a,最高位为符号位
打印的值为-128
以unsigned int形式打印:最高位不是符号位
打印的值为4294967168
最后
以上位本篇笔记的全部内容,原码、反码和补码在上一篇文章讲过了故这次就讲的比较粗略。
最后感谢各位对小风扇的支持,一起努力啊!
边栏推荐
- MySQL transaction concurrency and mvcc mechanism
- Some interesting modules
- 20220607跌破建议零售价,GPU市场正全面走向供过于求...
- [Collection - industry solutions] how to build a high-performance data acceleration and data editing platform
- Kalman滤波器--从高斯融合推导
- 充值满赠,IM+RTC+X 全通信服务「回馈季」开启
- mysql 递归
- Kalman filter -- Derivation from Gaussian fusion
- torch.roll
- mysql下载和安装详细教程
猜你喜欢

Swin-Transformer(2021-08)

详解单例模式

BeanUtils.copyProperties() 对比 mapstruct

PyTorch学习(三)

sqlserver SQL Server Management Studio和Transact-SQL创建账户、创建访问指定数据库的只读用户

Opencv data type code table dtype

Lenovo Yoga 27 2022, full upgrade of super configuration

Swin-Transformer(2021-08)

嵌入式软件开发新趋势:DevOps

Small program container technology to promote the operation efficiency of the park
随机推荐
Coding officially entered Tencent conference application market!
Regular expressions (regular matching)
《被讨厌的勇气:“自我启发之父”阿德勒的哲学课》
Reading notes of "high EQ means being able to talk"
服务器之间传文件夹,文件夹内容为空
Nodejs 安装与介绍
法国A+ 法国VOC标签最高环保级别
Evolution of screen display technology
Unlimited cloud "vision" innovation | the 2022 Alibaba cloud live summit was officially launched
js 字符串截取方法汇总
Mipi protocol in RFFE
Huaxing Securities: kitex practice under the original hybrid Cloud Architecture
20200525-生物技术-四川师范大学自考生物技术(本科)考试计划.txt
PyTorch学习(三)
Opencv data type code table dtype
NBI可视化平台快速入门教程(五)编辑器功能操作介绍
torch stack() meshgrid()
ArcGIS无插件加载(无偏移)天地图
Swin-Transformer(2021-08)
Brief introduction of Feature Engineering in machine learning