Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 整数中的位数_C_Compiler Construction - Fatal编程技术网

C 整数中的位数

C 整数中的位数,c,compiler-construction,C,Compiler Construction,C中整数的位数取决于编译器和机器。这是什么意思?int中的位数是否因不同的C编译器和不同的处理器体系结构而不同?你能解释一下它的意思吗?这篇维基百科文章提供了一个很好的概述: 诸如整数之类的类型在硬件中表示。硬件更改,某些类型的大小也会更改。类型中的位数越多,可以存储的数字(对于整数)或精度(对于浮点类型)就越高 有一些类型专门指定位的数量,例如int16它确切地表示它所说的内容以及您用自己的话所说的内容 例如,在某些编译器和平台上,int为32位,在其他编译器和平台上,int为64位 我记得很

C中整数的位数取决于编译器和机器。这是什么意思?int中的位数是否因不同的C编译器和不同的处理器体系结构而不同?你能解释一下它的意思吗?

这篇维基百科文章提供了一个很好的概述:

诸如整数之类的类型在硬件中表示。硬件更改,某些类型的大小也会更改。类型中的位数越多,可以存储的数字(对于整数)或精度(对于浮点类型)就越高


有一些类型专门指定位的数量,例如
int16

它确切地表示它所说的内容以及您用自己的话所说的内容

例如,在某些编译器和平台上,
int
为32位,在其他编译器和平台上,
int
为64位

我记得很久以前,当我在Commodore Amiga上编程时,有两个不同的C编译器可从两个不同的制造商获得。在一个编译器上,
int
是16位,在另一个编译器上,
int
是32位


您可以使用
sizeof
来确定编译器上的
int
有多少字节。

确实如此。这取决于不同的处理器体系结构,如32位CPU有4个字节,或64位CPU有8个字节。。等等@OP它指的是整数的大小。例如,在x86中,sizeof(long)是4,而在amd64中,sizeof(long)通常是8。这是一个关于语言C规则的(双重)问题,关于它的一种类型,
int
;而不是人们制造更大容量的计算机,以便我们用户可以在其中存储更大的内容。从重复的问题中可以看出。请自己回答家庭作业或测试问题。没有解释的向下投票不是很有建设性。Wikipedia用C is解释类型的大小。提问者要求解释大小可以不同的事实,而不一定是列表。我认为我的链接在这个问题上更有用。我认为通过阅读语言本身的规则可以更好地理解语言中类型的说明。但是当然OP会从阅读links.Manx(阿兹特克)和Lattice中获益@吉姆巴特,没错!我有阿兹特克C。