在c语言中,int,long,java short int long,有什么区别?

扫描二维码,关注牛客网
下载牛客APP,随时随地刷题
浙ICP备号-2
扫一扫,把题目装进口袋int和long int在32位下都是4字节,有什么区别么。?
为何输入电话号用int 或long int均不可。
按投票排序
int和long int不保证在任何平台下是具体的多少字节,只规定了最短长度。而且gcc好像在32位下的long是64位的。电话号码不能保证只有数字。
不是一个类型;不在32下,甚至在32位下未必完全相同。
已有帐号?
无法登录?
社交帐号登录C语言中的int是多少个字节? - 开源中国社区
当前访客身份:游客 [
当前位置:
32位的机器上,和64位的机器上分别是多少字节?
共有15个答案
<span class="a_vote_num" id="a_vote_num_
引用来自“贝多芬的悲伤。”的答案引用来自“PYPlus”的答案一般的 int类型存储在计算机的一个字中, iso/ansi c规定的int类型最小范围是-32768 - 32767 。常见的 &32位机器 为4个字节 &64位机器为64bit 8个字节。这中概念 随便一本c语言书都有讲吧 &c仅仅规定了short类型不会比int长 long类型不会比int短 &,纠结于int 和long有多长意义不大不是纠结,最近找实习,面试的时候问到了。然后,我百度和google了好久,还查了一下chrome的源码,发现不仅仅跟机器有关,还跟系统有关。查了一下《C++程序设计语言》也没有说明这个问题,只是说具体实现有关。C语言标准是说是一个机器字长,但是又有资料说在64位上有的系统实现是4字节,有的是8字节。所以,越查下去,我越糊涂了。 那就是我上面说的了,int最小是16bit 长度 ,short不会比int长 &long不会比int短 就这样 很宽松。你好好看看《c primer plus》关于数据类型的章节,还有你去网上下载一份c语言标准 这是最权威的了,iso/iec1989 或iso/iec &里面的5.2.4.2.1节里面有说各种int类型的尺寸
Their implementation-defined values shall be equal or greater in magnitude (absolute value) to those shown, with the same sign.
上面的句子来自对c99 标准文档。说的很清楚 具体实现的在绝对值上应该大于或等于下面所列出的值且符号相同 ,下面的大小也是来自c99文档
— minimum value for an object of type int&
INT_MIN -32767 // -(215 - 1)&
— maximum value for an object of type int
INT_MAX +32767 // 215 - 1&
— maximum value for an object of type unsigned int&
UINT_MAX 65535 // 216 - 1&
— minimum value for an object of type long int
LONG_MIN - // -(231 - 1)&
— maximum value for an object of type long int
LONG_MAX + // 231 - 1&
— maximum value for an object of type unsigned long int
// 232 - 1
所以int的最小是16bit就来自上面的INT_MAX &INT_MIN
如果你要看一个机器上的具体实现int类型有多大 你可以这样看 要包含limit.h
#include &stdio.h&
#include &limits.h&
int main(void)
fprintf(stdout,&%d\n&,INT_MAX);
fprintf(stdout,&%d\n&,INT_MIN);
fprintf(stdout,&%u\n&,UINT_MAX);
--- 共有 2 条评论 ---
查了一下C99标准,确实如你所说。谢谢你辛苦的回复了。
(3年前)&nbsp&
centos6.3 32bit上的输出
(3年前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
32bit/8 和64bit/8
<span class="a_vote_num" id="a_vote_num_
引用来自“Hobo”的答案32bit/8 和64bit/8
那long类型呢?也是不同的机器上不一样吗?
<span class="a_vote_num" id="a_vote_num_
一般的 int类型存储在计算机的一个字中, iso/ansi c规定的int类型最小范围是-32768 - 32767 。常见的 &32位机器 为4个字节 &64位机器为64bit 8个字节。这中概念 随便一本c语言书都有讲吧 &c仅仅规定了short类型不会比int长 long类型不会比int短 &,纠结于int 和long有多长意义不大
<span class="a_vote_num" id="a_vote_num_
具体问题 具体分析把 你自己sizeof看一下
<span class="a_vote_num" id="a_vote_num_
不同机器上不一样,我记得标准定义是int不小于16bit, long不小于(可以等于)int
--- 共有 2 条评论 ---
: 我看 C primer plus里讲的,好像是ANSI C里定义的
(3年前)&nbsp&
sizeof(long) &= sizeof(int)吗,请问有什么书上有关于这个问题的吗?
(3年前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
引用来自“PYPlus”的答案一般的 int类型存储在计算机的一个字中, iso/ansi c规定的int类型最小范围是-32768 - 32767 。常见的 &32位机器 为4个字节 &64位机器为64bit 8个字节。这中概念 随便一本c语言书都有讲吧 &c仅仅规定了short类型不会比int长 long类型不会比int短 &,纠结于int 和long有多长意义不大不是纠结,最近找实习,面试的时候问到了。然后,我百度和google了好久,还查了一下chrome的源码,发现不仅仅跟机器有关,还跟系统有关。查了一下《C++程序设计语言》也没有说明这个问题,只是说具体实现有关。C语言标准是说是一个机器字长,但是又有资料说在64位上有的系统实现是4字节,有的是8字节。所以,越查下去,我越糊涂了。
<span class="a_vote_num" id="a_vote_num_
引用来自“Hobo”的答案具体问题 具体分析把 你自己sizeof看一下试了,跟查的资料不一样,在64位上也还是4字节。所以,想问问C语言高手,看能不能有更好的解释。
<span class="a_vote_num" id="a_vote_num_
http://zh.wikipedia.org/wiki/%E5%AD%97_%28%E8%AE%A1%E7%AE%97%E6%9C%BA%29
字长最后有列表
<span class="a_vote_num" id="a_vote_num_
这中问题看书或自己搜索。
更多开发者职位上
有什么技术问题吗?
贝多芬的...的其它问题posts - 353,&
comments - 44,&
trackbacks - 0
============================
实在记不住,贴下来:
和机器字长及编译器有关系:
所以,int,long int,short int的宽度都可能随编译器而异。但有几条铁定的原则(ANSI/ISO制订的):
1 sizeof(short int)&=sizeof(int)
2 sizeof(int)&=sizeof(long int)
3 short int至少应为16位(2字节)
4 long int至少应为32位。
unsigned 是无符号的意思。
例如:16位编译器
char :1个字节
char*(即指针变量): 2个字节
short int : 2个字节
int: 2个字节
unsigned int : 2个字节
float: 4个字节
double: 8个字节
long: 4个字节
long long: 8个字节
unsigned long: 4个字节
32位编译器(看这里就行了,与16位机,64位机比较,粗体type为不同的,其余的都是相同)
char :1个字节
char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器)(16位机,32位机,64位机各不相同)
short int : 2个字节
int: 4个字节(16位机是2B,32位&64位是4B)
unsigned int : 4个字节(16位机是2B,32位&64位是4B)
float: 4个字节
double: 8个字节
long: 4个字节(16位&32位是4B,64位是8B)
long long: 8个字节
unsigned long: 4个字节(16&32位是4B,64位是8B)
64位编译器
char :1个字节
char*(即指针变量): 8个字节
short int : 2个字节
int: 4个字节
unsigned int : 4个字节
float: 4个字节
double: 8个字节
long: 8个字节
long long: 8个字节
unsigned long: 8个字节
阅读(...) 评论()C语言中短整型:short int与长整型:long short怎麽使用,, C语言中短整型:short int与长
C语言中短整型:short int与长整型:long short怎麽使用, 问题补充:
你们给一个用法咯,怎麽用 tzy1-6-11 C语言中短整型:short int与长整型:long short怎麽使用,
不是吧, 还没见过long short long int 吧 32bit = 4 bytesshort 16bit = 2 bytes
short int 指的是16位整形long short 指的是32位
short int 指短整型
缩写shortint 整型long int 长整型
缩写longlong short连写是错误,C没有又长又短型。
纳C,有IONG SHORT 吗?}

我要回帖

更多关于 c语言long和int 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信