整数中的位数[重复]

问题描述 投票:0回答:2

C 中整数的位数取决于编译器和机器。这是什么意思呢? int 中的位数是否会随着不同的 C 编译器和不同的处理器架构而变化?你能解释一下这是什么意思吗?

c
2个回答
2
投票

这篇维基百科文章提供了很好的概述:http://en.wikipedia.org/wiki/Word_(data_type)

整数等类型是用硬件表示的。硬件发生变化,某些类型的尺寸也发生变化。类型中的位数越多,可以存储的数字越大(对于整数)或精度越高(对于浮点类型)。

有一些类型专门指定了位数,例如

int16


2
投票

它的意思正是它所说的以及你用自己的话所说的。

例如,在某些编译器和某些平台上,

int
是 32 位,在其他编译器和平台上,
int
是 64 位。

我记得很久以前,当我在 Commodore Amiga 上编程时,有两个不同制造商提供的两种不同的 C 编译器。在一个编译器上,

int
是 16 位,在另一种编译器上,
int
是 32 位。

您可以使用

sizeof
来确定
int
在编译器上有多少字节。

© www.soinside.com 2019 - 2024. All rights reserved.