sizeof(short int ) = 2;

测试用例

#include

int main()

{

short int a = -32768;

short int b = 0x8000;

short int c = 0xffff;

short int d = 0x8001;

printf("%d, %d, %d, %d\n", a, b, c, d);

a -= 1;

b -= 1;

c -= 1;

d -= 1;

printf("%d, %d, %d, %d\n", a, b, c, d);

return 0;

}结果:

b, c, d的表示均为16进制表示,即机器的存储形式, 补码表示

负数溢出计算

理解一:(按机器存储来看,存储均为补码形式)

a 的补码形式(存储形式)为 1000 0000 ... 0000       a-1机器存储为 01111...1  为 32767的补码

理解二:(如下图)

a为最大负数, a -1 = a+ 2^32 - 1  = -32768 + 65536 -1 = 32767

图 一

b:  0xffff 为 -1的补码形式

补充:

short int 最大正数为 32767

测试 37267 + 1 = 01111...1 +1 = 100...0  (为 -32768的补码)

所以

short int a = 32767;

a += 1;

printf("%d\n", a); // -32768 从 图 一 同样可以看出

c语言怎么输入加减符号,C语言有符号加减溢出相关推荐

  1. c语言数据输入方式scanf,【C语言】-数据输入-scanf( )和getchar( )

    格式化输入函数scanf( ) scanf( )功能: 按照指定的格式读入键盘上输入的若干个任意类型的数据,存入到argument参数所指向的内存单元,函数返回值为读入并赋给argument的数据个数 ...

  2. c语言中输入大数,如何使用C语言实现输入10个数按从大到小的顺序排序输出

    本文主要向大家介绍了如何使用C语言实现输入10个数按从大到小的顺序排序输出,通过具体的内容向大家展示,希望对大家学习C语言有所帮助. 用选择排序法编写c语言,实现从键盘上输入10个数,按从大到小的顺序 ...

  3. c语言自动输入0到1000,c语言实现输入一组数自动从大到小排列

    #include main() { int x; printf("请输入要排序数字个数:"); scanf("%d",&x); int i,j,k,a, ...

  4. c语言中输入x分段函数值,c语言程序改错:输入x,计算并输出分段函数y的值.0 x0...

    C语言 . 输入半径R ,并计算圆的面积S 和周长L .3. 编写一个程序实现把小写字母转换成大写字母.比如 #includeintmain(){floatr,s,l;scanf("%f&q ...

  5. C语言怎么输入float的变量,c语言float怎么用

    C语言中float是什么意思 我是出自学者,有很多不会的,float是什么东东,什么意思啊,还有在程序float是C语言的基本数据类型中的一种,表示单精度浮点数. C语言规定单精度浮点型在内存占用4个 ...

  6. C语言自定义输入10000个整数,C语言

    5. [问题描述] 输入一个以回车结束的字符串(少于80 个字符),将其中的大写字母用下面列出的对应大写字母替换,其余字符不变,输出替换后的字符串? 原字母 对应字母 A → Z B → Y C → ...

  7. c语言若输入错误的是,C语言新人常见问题与错误

    作者:icelights 链接:http://blog.chinaunix.net/uid-13059622-id-2972924.html 不知不觉,学习C语言也快一年了.虽然有C语言课,但是老师完 ...

  8. c语言scanf输入后没反应,c语言scanf无法输入值

    满意答案 xueer12005 推荐于 2018.02.28 采纳率:42%    等级:8 已帮助:111人 scanf()是C语言标准库中的输入函数,声明包含在stdio.h文件中,因此要使用该函 ...

  9. 怎么在c语言中输入一串字母,C语言中如何输入一个数字n,再输入一串字母,控制字母个数为n(n是变量,1...

    C语言中如何输入一个数字n,再输入一串字母,控制字母个数为n(n是变量,1以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ...

  10. c语言键盘输入屏幕输出ppt,c语言健盘输入与屏幕输出.ppt

    本章学习内容, 字符输出函数putchar()  字符输入函数getchar()  数据的格式化输出函数printf()  数据的格式化输入函数scanf(),第4章 键盘输入 和屏幕输出,4 ...

最新文章

  1. java滥用接口_吐槽一下项目中的代码坏味道:滥用java常量
  2. js简单的下拉选中效果
  3. Markovdecisionprocesses_Discretestochasticdynamicprogramming下载
  4. 链接静态库的顺序问题
  5. 2.2.2 物理层设备(中继器、集线器)
  6. 使用NumPy优于Python列表的优势
  7. 最详细的排序解析,理解七大排序
  8. 单元测试的一些基本概念
  9. java文件全是数字编码_批量将Java源代码文件的编码从GBK转为UTF-8
  10. linux路由内核实现分析(三)---路由查找过程
  11. ruby学习笔记(3)--语法层面的先见之明
  12. 进阶运维:SSH无缝切换远程加密
  13. python的标准数据类型_Python中的标准数据类型
  14. 【零基础学JS -2】 适合编写JS的编辑器
  15. 我的团长我的团第八集
  16. Ring0层发送IRP消息打开文件不释放对象实现文件防删
  17. 5 个必备有用的开源日志分析工具
  18. Android处子Demo—简易的UC首页动画
  19. IIR滤波器和FIR滤波器的区别与联系
  20. 怎么吃才能促进孩子长个子?

热门文章

  1. 突发!各大厂纷纷中招Log4j 爆“核弹级”漏dong,Flink、Kafka等至少十多个项目受影响...
  2. 论K21O Draco开发板的概论
  3. fbx模型加载到html,three.js演示如何用FBXLoader来加载fbx模型
  4. 奥巴马在哥伦比亚大学巴纳德女子学院毕业典礼演讲全文
  5. Qt制作的一款即时通讯软件
  6. windows10电脑连接小爱音箱(完美解决连接上无声音)
  7. Wed Sep 16 2020 00:00:00 GMT+0800 (中国标准时间)时间转换为mysql date类型
  8. Word入门教程之编辑脚注和尾注(转)
  9. 漫步线性代数十四——正交和子空间
  10. 服务器能不能清理系统垃圾,在服务器上如何清理垃圾