C语言中short代表短整型,数值范围为-32768---32767,以下程序为什么运行后输出结果

C语言中short代表短整型,数值范围为-32768---32767,以下程序为什么运行后输出结果是c=32767?跪求大神解释

#include <stdio.h>
main()
{
​short a,b;
short c;
​a=-32768;
​b=1;
​c=a-b;
​printf("c=%d\n",c);
}

因为用补码存储的数据,-32768在二进制存储的是1000000000000000,减去1之后就是0111111111111111,变成十进制就是32767追答

你可以百度一下补码

追问

行,我去看看

温馨提示:内容为网友见解,仅供参考
无其他回答

C语言中short代表短整型,数值范围为-32768---32767,以下程序为什么运行...
因为用补码存储的数据,-32768在二进制存储的是1000000000000000,减去1之后就是0111111111111111,变成十进制就是32767

c语言中 基本整型数据的取值是-32768~32767,而输入33000程序为什么不报...
原因如下:系统编译器只对语法错误进行检查,如有则报错。整型数据的取值范围是-32768~32767,但在赋值时可以赋任何大小的值(甚至是实数),只是在赋值过程中会根据数据的二进制情况进行截取,当然得到的结果并不是乱码,而是将原数据的低16位截取赋值给整型变量,进行输出,不属于语法错误,当然不会报错。

C语言数据类型转换?
在C语言中,short类型数据的范围是-32768~32767,下面程序段的输出结果为0。short i=65536;printf("%d\\n",i);造成这样的原因是发生了“溢出”。就好比假设你有一把算盘,只有四个档位,每个档位只有五粒珠子,当然,它能存储的最大数就是9999,但是你要再给他加一,他就变成了0,因为他把进位...

c程序中基本整型的取值范围:-32768~32767是怎么算出来的?
第一位是符号位,也就是用它来表明这个数的符号(正数:0 负数:1)所以int型的最大正数为0111111111111111(15个1),其取值为2(15)-1,就是2的15次方减一,即32768-1=32767。最小负数:1000000000000000,按照补码的运算,得这个2进制数对应的十进制为-32768,这样也解释了为什么最大正数与最小负...

C语言中short整型数据的范围-32768---32767是中的-32768是如何确定的...
short 占用内存空间2个字节,也就是16个二进制位。表示负数时,最高位为符号位(负数的符号位为1),最小的负数为1000 0000 0000 0000 ,但是在计算机中负数是用补码(符号位不变,其余位取反,然后加1)表示的,人们规定1000 0000 0000 0000的补码为-32768 ,所以在补码系统中最小的是-32768 表...

c程序中基本整型的取值范围:-32768~32767是怎么算出来的?
答案明确: C语言中基本整型的取值范围-32768~32767是基于计算机二进制补码表示的。详细解释:1. 计算机中的二进制补码表示法:在计算机内部,整数通常使用二进制补码形式表示。正数和零采用原码表示,而负数则采用补码形式表示。补码允许我们在一个固定的位数内表示正数和负数,并允许它们共享相同的数值位来...

C语言中,"整型"跟"短整型"的取值范围都是 -32768~32...
C语言没有具体规定各类数据所占内存的字节数,只要求long型数据长于int型,short型短于int 型,是由计算机系统自行决定,有的short和 int都是16位,long 是32位,有的short为16位,long和int都是32位,通常是long 为32位,short为16位,而int可以是16位,也可以是32位,这两个都是用于存储整数....

c程序中基本整型的取值范围:-32768~32767是怎么算出来的?
答案明确: C语言中基本整型的取值范围-32768~32767是基于计算机二进制补码表示的。详细解释:1. 计算机中的二进制补码表示法:在计算机内部,整数通常采用二进制补码形式表示。正数和零采用原码表示,而负数采用补码表示。在这种表示法中,-128到+127的范围可以精确表示。这是因为计算机使用固定数量的位来...

C语言中short整型数据的范围-32768---32767是中的-32768是如何确定的...
在C语言中,short整型数据使用2个字节来存储信息,即16位二进制。这意味着它可以表示从最低位到最高位的从-32,768到32,767的整数值。这种范围的确定基于二进制位的性质,以及在计算中如何利用这些位来表示正负数。每个二进制位仅能表示两种可能,即0或1。这形成了一个基础,使我们能够通过组合这些位...

c语言中,基本整形,取值范围-32768到32767什么意思
就是说如果你定义一个整型变量,数值为32768,那么就会出现运行错误,因为你赋的数值超过了它本身的最大数值,最小也是一样的意思

相似回答