
C语言的数值溢出问题(上)
发布日期:2021-05-08 01:16:34
浏览次数:14
分类:精选文章
本文共 593 字,大约阅读时间需要 1 分钟。
问题: 何时会发生自动类型转换?
在一个赋值语句中,当赋值运算符左侧变量的类型和右侧的表达式不一致时, 就会发生自动类型转换.
问题:自动类型转换的规则是什么?
将赋值运算符右侧表达式的类型自动转换为左侧表达式变量的类型.
问题: 在不同类型数据间赋值, 是安全的吗?
问题:何为数值溢出,为什么会发生数值溢出?
任何数据类型都只能用有限的位数来存储数据, 也就是说任何数据类型的数据表达范围都是有限的. 如果我们向变量赋以超出其表示范围的数据, 就会发生数值溢出现象(这可能导致灾难性的后果).
生活中数值溢出的例子:
整数的数值溢出:
[注]右侧数据为程序运行后所得结果.
有符号整数和无符号整数的区别:
有符号整数的最高位被解释为符号位(0 -> 正, 1-> 负), 而无符号整数的最高位被解释为数据位.
整数的上溢出现象:
[注]图中所示变量a的类型为无符号短整型.
[注]图中所示变量a在第二行中被解释为无符号整数, 在第三行中被解释为有符号整数.
[注]黄色区域第三行所示二进制数据为-32768的补码, 这是人为规定的.
[注]负数在内存中以补码形式存放.
整型数据到短整型数据过程中的数值丢失:
[注]int型变量在内存中占4个字节, 而short型变量在内存中占2个字节.
[注]short型变量只保留了int型变量的低两字节数据.
两个无符号短整型数据做减法运算:
发表评论
最新留言
感谢大佬
[***.8.128.20]2025年04月14日 10时43分58秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
微信小程序云开发:怎么删除云函数?已解决
2019-03-15
什么是句柄(经典)
2019-03-15
本地navicat for MySQL远程连接阿里云的mysql
2019-03-15
第一次被黑
2019-03-15
PyCharm配置anaconda环境
2019-03-15
修改linux 系统自带日志系统systemd-journald && 参数
2019-03-15
Redis工具类
2019-03-15
Numi3 for Macmini文本计算器
2019-03-15
Long型转成Calendar,并获取年月日操作
2019-03-15
淘宝而已,随手就爬,保姆级教程带你装X带你飞!!!
2019-03-15
SpringBoot与缓存(JSR-107、Spring缓存抽象)
2019-03-15
微服务之Gateway实战讲解,小白必备哦!
2019-03-15
ERROR 总结
2019-03-15
Flutter ios打包 白屏问题
2019-03-15
数据结构与算法(C语言)——图的两种遍历(DFS和BFS)
2019-03-15
C语言—— 符号函数
2019-03-15
蓝桥杯Java 试题 E: 排序
2019-03-15