黑马程序员技术交流社区

标题: 一个int占多少个字节? [打印本页]

作者: Charay    时间: 2014-12-23 22:40
标题: 一个int占多少个字节?
一个int占多少个字节?
这个问题我们往往得到的答案是4.
可是int究竟占多少个字节,却跟你的机器环境有关.

As you can see, the typical data type sizes match the ILP32LL model, which is what most compilers adhere to on 32-bit platforms. The LP64 model is the de facto standard for compilers that generate code for 64-bit platforms.
近期在一本有关代码审计的书上看到如上解释.这里非常好的解释了int究竟应该占多少个字节.
并且从他的角度来看是编译器去适应平台.所以真正决定int占多少字节取决于你的device platforms.
事实上不管哪种模型short和char不管哪种model下都保持一致.
我们见得最多的就是ILP32LL模型.这样的模型下int和long已经pointer占4个字节 long long占8个字节.

PS:这个表非常easy记,中间的数字表明你是64bit还是32bit的机器.前面的I表示int,L表示long,LL表示long long,P就表示pointer.
位于数字前面的类型表示跟中间的bit数保持一致.举个样例:ILP32LL 就是ILP是32位,LL是64位



作者: x277402301t    时间: 2014-12-23 23:37
看起来有点高大上的feel
作者: 7788665544    时间: 2014-12-23 23:46
对啊,学习了! 跟计算机的环境相关,不一定都是4个字节
作者: AnElse    时间: 2014-12-23 23:47
在C,C++中与机器有关,但java中都是统一4个字节的吧
作者: 常强儿    时间: 2014-12-24 00:01
Java里的pointer是什么东东啊,你确认这是在说JAVA?
作者: 古月哥欠    时间: 2014-12-24 00:12
一直都认为在java中int占4个字节啊,这跟机器环境有什么内在联系吗?
作者: kerner    时间: 2014-12-24 00:19
你这是从哪里搞来的啊,还有long long pointer......这是C语言的啊。。
JAVA中规定死了byte short char int long float double几种基本类型的大小,但是在C/C++中是没有明确规定大小,具体有编译器和操作系统决定。
不要随便COPY一些东西误人子弟。
作者: 疯狂的学渣    时间: 2014-12-24 00:21
一般不是4个字节码,其它语言好像会不同。
作者: 呢?    时间: 2014-12-24 00:26
原来如此啊
作者: 黑马-李权88    时间: 2014-12-24 00:28
有点好深吧,这些原理不需要了解吧?
作者: liuhuan    时间: 2014-12-24 08:55
楼主钻研的好细致啊,向楼主学习。。。。
作者: zzy1990    时间: 2014-12-24 09:18
学习了,赞
作者: junge520    时间: 2014-12-24 10:36
我一般理解的都是4个字节
作者: huoxy    时间: 2014-12-24 10:42
Java为了实现跨平台性已经将基本数据类型的长度统一了,所有系统的int都是4字节。
作者: Piaoyu    时间: 2014-12-24 11:03
学习,学习,原来int也这么多东西啊!!
作者: zqbemail    时间: 2014-12-24 11:18
求大神科普,JAVA中的数据类型到底和系统有没有关系?看到楼主的神论,顿时觉得自己跟文盲一样。
作者: dandan520    时间: 2014-12-24 11:19
看不懂,.好深奥
作者: 钟道上    时间: 2014-12-24 12:15
在C,C++中与机器有关,但java中就是4个吧
作者: 骑着会飞的猪    时间: 2014-12-24 12:39
还有long long,学习了!!!!
作者: 双鱼座程序员    时间: 2014-12-24 13:15
我想说,学习了。
作者: 不落星辰    时间: 2014-12-24 13:15
学习了!
作者: 青衫禅客    时间: 2014-12-24 13:38
好吧,楼主看清楚这是java板块,请注明语言类型
作者: 找寻小龙猫    时间: 2014-12-24 20:50
这说的是 java??




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2