c语言intlong
① c语言中int,long的取值范围是多少为什么是这么多(32位机)
int和long作为基本的整数类型,取值范围和位数直接相关。如果是n位整数的话,最高位表示符号位,剩下的n-1位以补码形式表示绝对值,因此范围是整数区间[-2^(n-1),2^(n-1))。
int和long并没有明确位数,具体和平台相关(有一点可以确定,sizeof(int)<=sizeof(long))。一般而言,32位机的int是32位的,于是范围是[-2^31, 2^31)也就是[-2147483648, -2147483648)。而非int的位数取决于机器字长外还决定于软件平台(操作系统、编译器)上实现的特定的C语言数据模型(专指整数数据模型,不是数据库里讨论的那个),只是一般32位平台上的long都比较统一(基本上都是LP32),为32位,范围和int一致。(如果是64位平台,除了Windows上的LLP64模型中long是32位外,LP64、ILP64、SILP64的long都是64位)。
另外LS错误。首先用的无符号整数写法是错误的,其次printf使用不当(应该用字长无关的%i保证结果正确),再次结果意义不明确。
unsigned int i= -1;
unsigned long l = -1;
printf("%i %i", i, l);
-1转换为无符号数后表示负数的符号位“1”被作为最高非符号位,输出的是无符号整数的最大值。
printf("%i %i", i >> 1, l >> 1);
输出有符号整数最大值,该值加1再乘以-1后即得有符号整数最小值。
====
[原创回答团]
② c语言中int,long的取值范围是多少
主要看编译器怎么对这些类型的数据怎么处理了,不同的编译器可能会给int分配不同的空间,一般在32位系统中会给int分配4个字节,以前的单片机编译器一般会分配1个字节,现在64位的编译器一般会分配8个字节,不同的字节,他们能表示的取值范围也就不一样了。
同样,有符号数和无符号数,表示的数据范围也不一样。比如单片机中的编译器C51,分配一个字节:
无符号数,最大也就是0XFF,即十进制的255。
有符号数,正数0~127,负数-128到-1
其它依次类推
long同样类似
③ C语言 关于int和long类型的范围
编译器不同,宽度是不相同,分别如下:
16位编译器:
int: 2个字节
long: 4个字节
long long: 8个字节
unsigned long: 4个字节
32位编译器:
int: 2个字节
long: 4个字节
long long: 8个字节
unsigned long: 4个字节
64位编译器:
int: 4个字节
long: 8个字节
long long: 8个字节
unsigned long: 8个字节
具体范围,请看下图:
④ C语言中long int的输入、输出格式分别是什么
c语言中有一个和long long类型想同的类型是int64,他使用的格式是%I64d,如果是long long 那么格式是%lld。
⑤ c语言中int和long有什么区别吗
在32位机器上,二者相同。
在16位的平台上:int是2字节,long是四字节。
⑥ C语言中int short long 的具体区别是什么
三种类型,在类型定义、占用字节数、数据范围等方面存在不同点。
1、定义不同
int类型称为整型;
short类型称为短整型;
long类型称为长整型;
2、占用字节数不同
short int型变量两个字节(两个字节);
int类型四个字节(32位机中);
long int取值为8个字节(32位机中);
3、数据范围不同
short int型变量取值为-(2的16次方)+1 到 (2的15次方)-1;
int类型变量取值为-(2的32次方)+1 到 (2的31次方)-1;
long类型变量取值为-(2的64次方)+1 到 (2的63次方)-1;
(6)c语言intlong扩展阅读
1、具体占用几个字节C语言并没有规定,C语言做了宽泛的限制:
1)、short int类型至少占用2个字节。
2)、int类型建议为一个机器字长。32位环境下机器字长为4字节,64位环境下机器字长为8字节。
3)、short类型的长度不能大于 int,long类型的长度不能小于 int。
参考资料
网络-C语言
⑦ C语言变量定义char、int、long有什么区别
1、char 在所有机器上都是占一个字节,有符号数范围是-128到127,一般用来表示字符。字符在存储中就是存储的ascii值。
2、int 在16位机上占2字节,现在基本没有了。 在32|64位机上占四字节,有符号数范围是-2^31到2^31-1。
3、long 在32位编译系统下占4字节,与int相同。在64位系统下占8字节,可表示的数据范围是-2^63到2^63-1。
拓展资料:
C语言
是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
语言标准
起初,C语言没有官方标准。1978年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。布莱恩·柯林汉(Brian Kernighan) 和 丹尼斯·里奇(Dennis Ritchie) 出版了一本书,名叫《The C Programming Language》。这本书被 C语言开发者们称为K&R,很多年来被当作 C语言的非正式的标准说明。人们称这个版本的 C语言为K&R C。
特点
1、C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。
2、C语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。
3、不同的变量类型可以用结构体(struct)组合在一起。
4、只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。
5、部份的变量类型可以转换,例如整型和字符型变量。
6、通过指针(pointer),C语言可以容易的对存储器进行低级控制。
7、预编译处理(preprocessor)让C语言的编译更具有弹性。