[c语言]int的数的范围怎么求?整型常量数值的第一位是符号位而不表示大小吗?

作者&投稿:蒙官 (若有异议请与网页底部的电邮联系)
C语言int的取值范围~

C语言int的取值范围在32/64位系统中都是32位,范围为-2147483648~+2147483647,无符号情况下表示为0~4294967295。
C/C++编程语言中,int表示整型变量,是一种数据类型,用于定义一个整型变量,在不同编译环境有不同的大小,不同编译运行环境大小不同。
C的数据类型包括:整型、字符型、实型或浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和空类型。
基本数据类型:
void:声明函数无返回值或无参数,声明无类型指针,显示丢弃运算结果。(C89标准新增)
char:字符型类型数据,属于整型数据的一种。(K&R时期引入)
int:整型数据,表示范围通常为编译器指定的内存字节长。(K&R时期引入)
float:单精度浮点型数据,属于浮点数据的一种。(K&R时期引入)
double:双精度浮点型数据,属于浮点数据的一种。(K&R时期引入)
_Bool:布尔型(C99标准新增)
_Complex:复数的基本类型(C99标准新增)
_Imaginary:虚数,与复数基本类型相似,没有实部的纯虚数(C99标准新增)
_Generic:提供重载的接口入口(C11标准新增)


扩展资料:
1989年,ANSI发布了第一个完整的C语言标准——ANSI X3.159—1989,简称“C89”,不过人们也习惯称其为“ANSI C”。
C89在1990年被国际标准组织ISO(International Standard Organization)一字不改地采纳,ISO官方给予的名称为:ISO/IEC 9899,所以ISO/IEC9899: 1990也通常被简称为“C90”。
1999年,在做了一些必要的修正和完善后,ISO发布了新的C语言标准,命名为ISO/IEC 9899:1999,简称“C99”。
在2011年12月8日,ISO又正式发布了新的标准,称为ISO/IEC9899: 2011,简称为“C11”。
参考资料:
百度百科-C语言
百度百科-int函数

恩!首先要指出你的一个错误!int的范围不是(-128----127)这个是char的范围,

范围的大小是由类型所占有的字节来决定的。如此所示:char是一个字节8bit,那么在二进制中,8bit最大值是255,最小值是0(在是在无符号时)如果是有符号的话.那么就还有一位是符号为,最高位是符号为。例如:1111 1111:如果是有符号的char数据那么这个数的-1;最高是符号位,如果是1,就是负数,如果是0是正数。
0111 1111 就是+127;
那么1111 1111 怎么理解是-1嗯!在数电中提到,对于一个负数要用它的反码来表示。
如:1111 1111 的反码是1000 0001.怎么的来呢!?
首先,我们要得到-1的值,那么第一步是的好1000 0001,最高位1是符号位,最后一个1是数值位。但是在机器中我们要用反码来表示此值。那么就要求他的反码。反码的求法是符号位不变。数值位取反加一。

取反后是结果是:1111 1110

再加一的结果是:1111 1111

如果是1,那么1 的8位表示是0000 0001
解释的很少!你可以自己看看,如果不懂可以在聊!

不同的编译器对于整型数的范围有所不同!不过一般都是两个字节。比如单片机C51整型范围是两个字节!范围是-32768到32767!
范围如何求呢?
有符号数在计算机中用补码表示!最高位是符号位,0为正数,1为负数!正数的补码还是他本省,负数是求补码的方法是写出他对应的正数 比如-32768 对应的是32768 把他的二进制取反加1 那么正数最大 0111 1111 1111 1111也就是0x7fff 十进制就是32767 负数的最小值二进制补码1000 0000 0000 0000 转换回去 其他位减一 是0111 111 1111 1111取反 之后1000 0000 0000 0000 那么他的值就是32768 因此对应的负数是-32768
转换后是也就是32768因为符号位是1所以是-32768

这个其实和编译器的版本相关,看看就知道


c语言中int和double的区别在哪里?
在c++中,int和double有以下几个区别:1、类型区别:int是定义的整型数据,如int a 则a的值只能是整型,比如a=3。double双精度浮点数,就是有小数点的数。2、在计算中的存储方式:int在32位计算机中占4个字节,这4个字节的在内存中存放的顺序为低字节存在低地址,高字节存在高地址。double是64位...

c语言中,int型数据,能表示的最大十进制数是多少
和编译器有关,16位机器准确说是16位编译器是:-32768~32767 32位编译器:-2147483648~2147483647 64位编译器:见下图。目前在一般的电脑中,int占用4字节,32比特,数据范围为-2147483648~2147483647[-2^31~2^31-1]在之前的微型机中,int占用2字节,16比特,数据范围为-32768~32767[-2^15~2^15-...

c语言中int的含义
关于c语言中int的含义如下:int是c语言的关键字,代表整型数类。int是定义整数数据的标识符,指定义一个变量为整数类型,是c语言中的一种数据类型。在一般的电脑中,int占用4字节,32位,在之前的微型机中,int占用2字节,16位,int占4个字节只能表示整数。char占1个字节只能表示字符。c语言共有三种...

C语言int输出数问题
编写程序时,你首先要考虑用什么样的数据类型,存储对应的数据。可以改一下数据类型:int i;char a[5][12]={'10604222014','10604222203','10604222236','10604222251','10604222265'};char *s=a;for(i=0;i<5;i++)printf("%s",s++);在c语言中,通常用字符数组来存储学号不定长的数据,而...

C语言中,unsigned int型数据的取值范围是???
0到65535。举例:unsigned a;a=5;或:unsigned int a;a=5;16位系统中一个int能存储的数据的范围为-32768~32767,而unsigned int能存储的数据范围则是0~65535,在计算机中,整数是以补码形式存放的。系统使用 无符号数只表示大小,有符号数最高位(二进制情况下最高位表示符号位),在同一操作...

c语言中int变量范围为什么是—32768至32767 就是正数的最大是2的15次 ...
你说的这个int是两个字节的,每个字节8位,由于第1位要用来表示符号位所以正的最大值是 0 1111111 11111111 总共15个1,而2的15次方是 1 0000000 00000000 2的15次方减一刚好是 0111111111111111,就是 32767

C语言?当int数字超过32767后它会显示什么数字?还有tc2.0和C++6.0有哪些...
TC里int占2个字节(16位),大小范围:-2^16 ~ 2^16-1(即:-32768~32767)而VC++里int占4个字节(32位),大小范围:-2^32 ~ 2^32-1(即:-4 294 967 296 ~4 294 967 295)因此在输入数字超出范围是发生会溢出。如果输入32769,在TC中发生溢出显示-32767(注意:溢出后输出的数不是...

c语言里的int是什么意思
举个例子:int x[5];这个的意思就是你申请了一个数组(和人排坐座位是一样的,就是五个位子么,第一个位子叫做x[0],第二个叫做x[1]……最后一个位子叫做x[4],注意没有x[5],这个就是这么定义的,从0开始,没有为什么!)所以[]里面是放数字的,表示有几个“位子”。应用方法:x[0]...

C语言里int和short型变量的区别是什么??
int占用2字节,16比特。在32位平台下如windows(32位)中short一般为16位。2、数值范围不同:int在一般的电脑中,数据范围为-2147483648~2147483647[-2^31~2^31-1],在之前的微型机中,int数据范围为-32768~32767[-2^15~2^15-1]。C++ & C short为一种数据类型,范围-32768~+32767。

int i,a[8]在c语言中是什么意思
int在C语言中是整型变量的定义,int i就是定义一个整数变量i,在接下来的使用中i都是整数,比如你可以i=1或者其他整数,如果你让i=1.1,那么系统会报错或者自动转为i=1;a[8]是数组,int a[8]就是定义一个最多储存8个整数的数组,数组下标从0到7,当然不一定存满,但最多存储8个整数。例...

阳江市18494982418: C语言中.int 取值范围 -
怀怖炎可: 首先声明:数学学得不好.所以不明白2的15次方是怎么来的,之后又为什么要减1.详解这个计算过程.谢谢!! int型占2个字节 即为16位 00000000 00000000 int 型是有符号型最大的整数是 01111111 11111111=10000000 00000000-1 转换成10进制``即为2^15-1 因为1后面有15个0``最小的数10000000 00000000 -2……16

阳江市18494982418: [c语言]int的数的范围怎么求?整型常量数值的第一位是符号位而不表示大小吗? -
怀怖炎可: 不同的编译器对于整型数的范围有所不同!不过一般都是两个字节.比如单片机C51整型范围是两个字节!范围是-32768到32767! 范围如何求呢? 有符号数在计算机中用补码表示!最高位是符号位,0为正数,1为负数!正数的补码还是他本...

阳江市18494982418: 为什么在 c语言中,int 有个范围,这个范围怎么计算的? -
怀怖炎可: 首先,不同16位、32位位中,int型的数据大小(其所占的字节)是不同的,分别是2,4个字节,即分别占16位,32位.所以,32位和64位机上应该是不同的.以32位的为例,其最大值是2的31次方-1,最小值是负的2^31次方.其它的计算方法一样.

阳江市18494982418: C语言中:int 型的范围问题求解 -
怀怖炎可: 1. int是有符号的,最高位用来作符号位,所以只剩下15或31位来表示数值了 2. 为什么要-1,因为有2的15次方个负数,1个0,2的15次方-1个正数.总共是2的32次方个数字.

阳江市18494982418: c语言中的int的最小范围是怎么来的? -
怀怖炎可: int型第一位是符号位,如果是0---代表这个数正数,1----代表这个数是负数.譬如,0111 1111是127(十进制),1111 1111是-127!

阳江市18494982418: c语言中怎样定义一个数的范围 -
怀怖炎可: 很简单的:int、 float、 double等定义数,总是有范围的啊,比如:int的范围在-32768-32767之间.还有专门的枚举类型----enum ,定义后变量取值就在指定范围内,格式如下: enum fg{1,2,3,5,4,6}; enum fg i; 这样i变量就被限制在了上面数值之间.

阳江市18494982418: C语言int的取值范围 -
怀怖炎可: 二进制数在计算机内存储的是其补码 对于有符号数,正数的补码和本身一样,负数的补码是本身的数字位取反后加1 比如: 1=(0001)补=(0001) -1=(1001)补=(1111) 计算机存储-1就是存储的1111 因此 当int表示范围为16位时,可以表示的最大负数为: 10000...0000(后面有15个0) 相当于-0 但这其实是-32768=110000...0000(第一位符号位,后面有15个0)的补码表示 可以理解为16位的int足可以表示-32768的补码

阳江市18494982418: 在C语言中,一个int型数据在内存中占2个字节,则int型数据的取值范围为 -
怀怖炎可: int型数据的取值范围:-32768~32767 即负数部分(2的8次方)占一个字节,0及正数部分(2的8次方再减去0所占用的)占1个字节.

阳江市18494982418: C语言中的 数的范围 字节数 要怎么算 -
怀怖炎可: printf("%d", sizeof(int)); 得到的就是字节数 范围就是 正负2的这个数乘以8减去1次方-1 比如说4 -(2^31-1)~~~2^31-1

阳江市18494982418: c语言中16位机的int类型的表示范围是怎么算了.书上说是 - 2的15次到2的15次减1 -
怀怖炎可: int 因为第一位当作符号位, 0为正负数为1, 所以只剩下15位存数字. 0的编码为全0, 所以0被当作正数了, 所以 正数比负数的范围少1 无符号数是不设符号位了, 16位统统拿来表示数字. 所以 范围是 0~ 2的16次方减1

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网