c语言中整型数据的取值范围是怎么确定的???

如题所述

这个你要明白整型在计算机中的存储原理--补码形式存储,举一个类吧,short 所占位数是16位,即

其中要说明的是最大整数 (0111111111111111)计算方法

0111111111111111 即相当于16进制的7FFF,转换为10进制后是 32767

 

最大负数:1000000000000000,由于最高位是1,判断为负数,用求补码的原理,按位求反+1

即 反码 0111111111111111  补码 100000000000000   转换为10进制 32768  补回符号

-32768

 

其它的同样计算

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-10-08
对于无符号数,比较简单,根据占用的位数可以直接计算:
unsigned short 16位 0~2的16次方-1(即65535)
unsigned int 16位 0~2的16次方-1(即65535)
unsigned long 32位 0~2的32次方-1(即4294967295)

对于有符号数,由于符号位占用一位,并且负数要用补码表示
以8位数据为例:2进制的11111111表示-1,10000000表示-128,所以负数范围-128~-1;2进制00000000表示0,01111111表示127,所以正数范围0~127。合起来就是-128~127,找一下规律发现是- 2的(8-1)次方~2的(8-1)次方-1,那么就可以得到任何位数的范围:
short 16位 - 2的(16-1)次方~2的(16-1)次方-1(即-32768~32767)
int 16位 - 2的(16-1)次方~2的(16-1)次方-1(即-32768~32767)
long 32位 - 2的(32-1)次方~2的(32-1)次方-1(即-2147483648~2147483648)本回答被提问者采纳
第2个回答  2013-10-18
看存储空间和表示形式啊,补码还是原码。

c语言中整型数据的取值范围是怎么确定的???
以8位数据为例:2进制的11111111表示-1,10000000表示-128,所以负数范围-128~-1;2进制00000000表示0,01111111表示127,所以正数范围0~127。合起来就是-128~127,找一下规律发现是- 2的(8-1)次方~2的(8-1)次方-1,那么就可以得到任何位数的范围:short 16位 - 2的(16-1)次方~2...

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

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

c语言中长整型和整型的范围
C语言中长整型数的范围是0到2的三十二次方,整型数的范围为0到2的十六次方。C语言是一门通用计算机编程语言,应用广泛,初学者能够轻松进行学习。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

为什么C语言中的整型取值范围是--32768~32767,是按什么规则规定,推理...
整型的宽度是一个字,也就是2个字节,16个二进制位,最高一位二进制位用来表示符号(正或负),那么剩下的15位来表示数值。01111111 11111111是32767,最大的正整数 00000000 00000001是1 00000000 00000000是0 11111111 11111111是-1(不是-32767)10000000 00000001是-32767(不是-1)10000000 00000000...

int型数据的取值范围怎么算
C语言没有规定各种整数类型的表示范围,也就是说,没有规定各种整数的二进制编码长度,对于int和long,只规定了long类型的表示范围不小于int,但也允许它们的表示范围相同。具体C语言会对整型和长整型规定表示方式和表示范围。整数(int类型的常量)有几种书写形式,程序中的整数一般采用十进制写法。用十...

C语言中 unsigne围是
C语言中的整型数据类型(int)具有一定的数值限制。它的取值范围是从-32768到32767,包括这两个极端值。然而,对于无符号整型(unsigned int)而言,情况有所不同。无符号整型的特性使得它不包含负数,因此其取值范围是从0开始,直至65535,这是一个严格的非负整数区间。这种差异在处理数值计算和存储时需...

数据库中数据类型int定义的是什么数据啊
在C语言中,整型数据(int)是最基本的数值类型,用于存储整数。其表示范围取决于编译系统分配给int型数据的字节数。如果分配的是2个字节,取值范围是从-32768到32767;如果分配的是4个字节,取值范围则是从-2147483648到2147483647。

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

C语言中整型数据的值域是怎么求出来的
如果整形占用2个字节(即16位),那么最小的数就是负的2的15次方,最大数就使2的15次方再减1。同理,如果整形占用4个字节(32位),那么最小的数就是负的2的31次方,最大数就使2的31次方再减1。为什么是15次方?因为存储符号(即正数还是负数)要占用1位。

相似回答