int取值范围

大自然的搬運工 2010-10-18 01:03:27
搜到一个结果说是和硬件有关,谁能更详细的说一下。byte short long float double是不是也和硬件有关系。
...全文
13246 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 zhx00100 的回复:]

引用楼主 qq2501 的回复:
搜到一个结果说是和硬件有关,谁能更详细的说一下。byte short long float double是不是也和硬件有关系。

真能忽悠人!
1byte 即 1字节 = 8 bit(内存中为8位)
int型在32位机上是4bytes(4个字节)(32位即 32/8=4字节)
在64位机上是8bytes(64/8=4字节)
规律自己可以看……
[/Quote]
我忽悠了吗?我认为这个不清楚的要大家一起讨论一下的,我忽悠你干什么!!可笑
zhx00100 2010-11-11
  • 打赏
  • 举报
回复
[Quote=引用楼主 qq2501 的回复:]
搜到一个结果说是和硬件有关,谁能更详细的说一下。byte short long float double是不是也和硬件有关系。
[/Quote]
真能忽悠人!
1byte 即 1字节 = 8 bit(内存中为8位)
int型在32位机上是4bytes(4个字节)(32位即 32/8=4字节)
在64位机上是8bytes(64/8=4字节)
规律自己可以看懂了吧
short int 是 int 的一半
char型在任何CPU都是1字节
小魔菇 2010-10-18
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 linwhwylb 的回复:]

跟编译器的关系最大,跟硬件的关系不大。
[/Quote]
CPU不是硬件?
Linux-Torvalds 2010-10-18
  • 打赏
  • 举报
回复
跟编译器的关系最大,跟硬件的关系不大。
wizard_tiger 2010-10-18
  • 打赏
  • 举报
回复
不知是否有关不过好像
在VC中int默认为long int占4个字节
在TC中int默认为short int占2个字节
kingstarer 2010-10-18
  • 打赏
  • 举报
回复
跟编译器有关

编译器用多少位来表示int 取值范围就是多大

你可以用sizeof(int)来获取int类型有多少位


现在编译器(VS gcc)一般是32位,以前的编译器(TC)一般是16位
wasx1 2010-10-18
  • 打赏
  • 举报
回复
int的字节长度小于等于long大于等于short就行了。
多数平台上int占4个字节(32位,不是16位!),所以能表示的范围就是2的32次方,表示为数值是-2^(32-1) ~ 2^(32-1) -1 ( ^ 表示成方 )(就是 -2^31 ~ 2^31 - 1, 而不是2^16...)
只有少数平台是32768——32767。
这个可以在机子上测一下,能测出来的。
try325 2010-10-18
  • 打赏
  • 举报
回复
有的地方说是跟系统位数有关,比如32位系统或64位系统等,此处系统位数硬件cpu位数一致吗?
fengbangyue 2010-10-18
  • 打赏
  • 举报
回复
是和硬件有关的 比如32位和16位就不同了
luciferisnotsatan 2010-10-18
  • 打赏
  • 举报
回复
标准头文件limits.h中定义了INT_MIN和INT_MAX这两个宏


zhx00100 2010-10-18
  • 打赏
  • 举报
回复
在你的编译器里 : int i = 0;
i = sizeof(int);
自己测试各种类型的字节长度.32位和16位/8位长度均不同
walkersfaint 2010-10-18
  • 打赏
  • 举报
回复
是跟硬件相关的,至少你在做嵌入式开发的时候,你的每个类型都是需要根据cpu来重新定义长度的
Sou2012 2010-10-18
  • 打赏
  • 举报
回复
和编译器和硬件有关吧。 32位机器上, int 和 long是一样的,4个字节. double 8个字节。
乐CC 2010-10-18
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 ilwmin 的回复:]
可以认为只和编译器有关
[/Quote]
编译器要遵循标准的,只是标准没有说一定要多少,已知的是:
char 一定是1个字节;
long不能小于int;
double至少8个字节,其他的就不知道了
ilwmin 2010-10-18
  • 打赏
  • 举报
回复
可以认为只和编译器有关
  • 打赏
  • 举报
回复
难道只和编译器有关,无视硬件环境????
小魔菇 2010-10-18
  • 打赏
  • 举报
回复
有关系
一般
字符型量与计算机的CPU字长无关,它只占用一个字节
byte char 是一个字节
整型量所占的长度和计算机的CPU字长有关

char = signed char = unsigned char < short int = unsigned short int <= int = unsigned int <= long int = unsigned long int <= long long int = unsigned long long int
float <= double <= long double
这些长度多少 跟处理器还是编译器有关

1楼说的是32位的情况

千杯不醉-sen 2010-10-18
  • 打赏
  • 举报
回复
不好意思,复制了一下,复制多了
[Quote=引用 1 楼 yangsen600 的回复:]
应该没有关系吧。
vc6.0
byte:1个字节
short:2个字节
long:4个字节
float:4个字节
double:8个字节
[/Quote]
千杯不醉-sen 2010-10-18
  • 打赏
  • 举报
回复
应该没有关系吧。
vc6.0
byte:1个字节
short:2个字节
long:42个字节
float:42个字节
double:82个字节

69,381

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧