A. C++问题整形的取值范围问题
你的书太旧啦
那时候 PC 一般用 dos 或者 windows 早期版本(win95 以前),操作系统是内 16 位的,默认 int 也是 16 位的,一般采用补容码,取值范围 -32768 ~ +32767
现在的 PC 一般用 32 位操作系统,int 也是 32 位的,取值范围 -2^31 ~ +2^31-1
B. c程序中基本整型的取值范围:-32768~32767是怎么算出来的
整型在你那个版本里是占用两个字节来存储的,每个字节8位,也就是16位的2进制,大家知道版这样一个2进制数总是对权应着一个正数。
但是要表示正数和负数该怎么办,聪明的科学家在限制的2进制数位数的前提下采取了补码(算法及详细见补码)的形式来存储负数。
第一位是符号位,也就是用它来表明这个数的符号(正数:0 负数:1)所以int型的最大正数为0111111111111111(15个1),其取值为2(15)-1,就是2的15次方减一,即32768-1=32767。
最小负数:1000000000000000,按照补码的运算,得这个2进制数对应的十进制为-32768,这样也解释了为什么最大正数与最小负数的绝对值差1。
C. c语言整数变量类型的取值范围是什么意思
C 语言的数据基本类型分为字符型、整型、长整型以及浮点型,取值范围如下:
整型内变量是容一种计算机语言。在C语言中,整型变量的值可以是十进制,八进制,十六进制,但在内存中存储着是二进制数。变量顾名思义是数值可以变的量,整型变量表示的是整数类型的数据。
变量自然和常量是相对的。常量就是 1、2、3、4.5、10.6......等固定的数字,而变量则根我们小学学的 x 是一个概念,我们可以让它是 1,也可以让它是 2,我们想让它是几是我们的程序说了算的。
我们小学学的数学里边,有这么几类,正数、负数、整数和小数。在 C 语言里,除名字和我们数学里学的不一样外,还对数据大小进行了限制。
D. c语言中长整型和整型的范围
1、c语言中长整型常量:的数值范围最小是十进制的-2147483647~+2147483647,在计算机中最少占用4个字节。内字节长度跟操作系统和编译器容有关,longint长度至少32位,而64位类Unix系统为64位。
2、c语言中整型常量:是通常的整数,包括正整数、负整数和0,其数据类型显然是整型。整型常量内存大小和数值范围取决于编译器。
(4)基本整形的取值范围怎么算的扩展阅读
c语言中VB中的长整型
VB中整数类型有两种:Integer和Long,都是有符号的整数
Integer变量存储为16位(2个字节)的数值形式,其范围在-32,768至32,767之间。Integer的类型声明字符是百分比符号(%)。
Long(长整型)变量存储为32位(4个字节)有符号的数值形式,其范围从-2,147,483,648到2,147,483,647(约为21亿)。Long的类型声明字符为和号(&)。
E. 关于整型数据取值范围
因为计算机中的整型一般用2个字节表示,即16位。第一位表示正负符号,所以负数最小是可以达到,2的15次方负值,正数部分虽然也可以有2的15次方个数值,但数值0占了一个,所以最大正数值为2的15次方减一。
在计算机内,定点数分为有符号数(signed)和无符号数(unsigned)。其中,有符号数的表示方法有三种:原码、反码和补码。反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
计算机的字长为n位,n位二进制数的最高位为符号位,其余n-1位为数值位,采用补码表示法时,可表示的数X的范围是 -2的次幂≤X≤2的次幂-1。
(5)基本整形的取值范围怎么算的扩展阅读:
常见数据类型存储空间大小与范围:
1、Byte(字节型)用1个字节表示,数值范围: 0 - 255
2、Boolean(布尔型/逻辑型) 用2个字节表示,数值范围:True 或 False
3、Integer(整数型) 用2个字节表示,数值范围:-32,768 ~ 32767
4、Long(长整形)用4个字节表示,数值范围: -2,147,483,648 ~ 2,147,483,647
5、Single(单精度浮点型)用4个字节表示,数值范围:
负数范围:-3.402823E38 ~ -1.401298E-45
正数范围:1.401298E-45 ~ 3.402823E38
6、Double (双精度浮点型) 用8个字节表示,数值范围:
负数范围:-1.797,693,134,862,32E308 ~-4.940,656,458,412,47E-324
正数范围:4.940,656,458,412,47E-324 ~1.797,693,134,862,32E308
F. 关于C语言中整型变量取值范围的问题
虽然有16位,但最高位是符号位。最高位为1时说明是负数,为0时表示正数。
即最大内的正数的而二进容制数就是第一位是0后面15个1:011111111 11111111
对应的十进制数就是2^15-1,而其一为为1其余的全是0时即10000000 00000000表示最小的负数,十进制就是2^-15
G. c语言整形数值取值范围为什么有负数
整数 分为正整数 负整数 0
如果用最高为做符号位的话 c语言里就会出现负数
使用sizeof(类型) 来确定范回围
sizeof(int) 如果等于答4的话 那么表示4*8=32 bits 2^32=4294967296
int 范围就是-2147483647~2147483648
sizeof(int) 如果等于2的话 那么表示2*8=16 bits 2^32=65536
int 范围就是-32768~32768
同样的类型在不同编译器里大小不同~~
H. 整形数取值范围怎么求来的
这是因为一般计算机中采用"补码"存储数据,整形数是32位的版,负数中最小的是-2^31,正数中最大权的是2^31-1
详情请参考网络“补码”http://ke..com/view/377340.htm
I. c语言中整型数据的取值范围是怎么确定的
这个你要明白整型在计算机中的存储原理--补码形式存储,举一个类吧,short 所占位数是16位,即
其中要说明的是最大整数 (0111111111111111)计算方法
0111111111111111 即相当于16进制的7FFF,转换为10进制后是 32767
最大负数:1000000000000000,由于最高位是1,判断为负数,用求补码的原理,按位求反+1
即 反码 0111111111111111 补码 100000000000000 转换为10进制 32768 补回符号
-32768
其它的同样计算
J. c语言中,基本整形,取值范围-32768到32767什么意思
就是说如果你定义一个整型变量,数值为32768,那么就会出现运行错误,因为你赋的数值超过了它本身的最大数值,最小也是一样的意思