linux 字节类型,int数据类型占几个字节?
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
int 数据类型所占字节数由编译器根据 C 标准的实现决定的
C99 标准只明确规定了 int 类型的数值表达范围,具体可以参考头文件 limite.h(/usr/include/limite.h) 以及 stdint.h(/usr/include/stdint.h)。它并没有明确规定 int 数据类型的字长。
这样规定的好处是令 C 语言具有更好的移植性,编译器在具体实现时只要令 int 的字长足够描述 C 标准规定的数值范围即可。试想如果规定死了 int 的字长,万一目标平台处理器无法支持那该如何是好呢?例如在以前的 PDP-7 (unix 诞生地)上,其字长是 18 位,和我们常见的以 8 为基数的字长(8,16,32,64)很不相同,如果以字长来规定的话,在其上实现 C 标准就颇为麻烦。
所以,int 字长到底是多少要看编译器如何实现。原则上在满足 C 标准的前提下,为了发挥目标平台的处理效率,编译器设计 int 的字长时会尽量令其与目标平台处理器的字长相同。
根据 C99 标准中的规定,int 类型的数字范围至少应该能表达 -32767 -- +32767(Annex E
(informative) Implementation limits)。
#define INT_MAX +32767
#define INT_MIN -32767
因此,int 类型的字长至少需 16 位(2字节)。
综上所述,根据 int 表达范围(至少 2 字节)和执行效率(int 字长 = 处理器字长)这两个条件,在常见的 Intel 体系上,我们就会见到 int 的字长有 16位(2字节),32位(4字节),64位(8字节)等几种。具体长度可以通过 sizeof(int) 求出来。
一般来说,在做计算时我们通常不太需要关心 int 的字长(除非涉及符号和溢出),但涉及到位操作,或者系统边界领域如存储到文件、实现网络协议时,数据类型的字长就很重要了。
如果需要进一步了解 C 标准的细节的话,推荐直接看 C99 标准文档,可以直接到网上去搜索。
linux 字节类型,int数据类型占几个字节?相关推荐
- linux中int类型,int数据类型占几个字节?
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 int 数据类型所占字节数由编译器根据 C 标准的实现决定的 C99 标准只明确规定了 int 类型的数值表达范围,具体可以参考头文件 limite.h( ...
- int 几个字节 java_Java中char,short,int,long占几个字节和多少位
1.字节:byte:用来计量存储容量的一种计量单位:位:bit 2.一个字节等于8位 1byte = 8bit char占用的是2个字节 16位,所以一个char类型的可以存储一个汉字. 整型: b ...
- int为什么占4个字节?一个字节为什么是8位?
不知道大家有没有思考过这样的问题,一个字节为什么是8位呀,也许还有小伙伴不知道我说的这些是什么,没关系往下看. 第一个解释(历史)是IBM为System/360设计了一套8位EBCDIC编码,涵盖了数 ...
- 中文标点符号占用几个字节_英文字符占几个字节?汉字字符、还有标点呢?????...
展开全部 一个英文字符等于1个字节,一个中文(含繁体)字符等于3个字节:中文标点占3个字节,英32313133353236313431303231363533e59b9ee7ad94313334313 ...
- Java中int为什么占四个字节?
简单了解计算机为什么要采用二进制表示信息: 因为计算机作为一种电子计算机工具,是由大量的电子器件组成的,在这些电子器件中,电路的通断,电位的高低,用两个数字符号"1"和" ...
- Java中char,short,int,long占几个字节和多少位
1.字节:byte:用来计量存储容量的一种计量单位:位:bit 2.一个字节等于8位 1byte = 8bit char占用的是2个字节 16位,所以一个char类型的可以存储一个汉字. 整型: b ...
- java 字符 几个字节_java中字符串占几个字节
首先,char为Java的基本类型,基本类型所占的字节数是固定的,如int占4字节,double占8字节,这可以使得Java在不同的平台上所占类型固定,很好地保证了Java的可移植性.因此,Java中 ...
- java一个中文几个字节_java一个汉字占几个字节;一个字符占几个字节?redis一个汉字占几个字节;一个字符占几个字节?...
脱离字符集编码 谈这个问题没什么实际意义 我不知道你讲的Java 中汉字是几个字节具体是什么意思 Java 中 Character 采用的是 utf-16 编码,那么就是两个字节(0----65535 ...
- char几个字节java_java中char占几个字节?
java中char占几个字节? java中的一个char占用2个字节.java采用unicode,2个字节来表示一个字符. 一个数字或英文或汉字都是一个字符,只不过数字和英文时,存储的2个字节的第一个 ...
最新文章
- C++:多线程中的小白(3)线程传参详解
- 深度学习项目实战-关键点定位视频课程
- 箭头函数中的this的使用
- 4、MySQL创建数据库(CREATE DATABASE语句)
- 第12章:项目采购管理-章节真题
- java jpa hibernate_java - JPA和Hibernate - Criteria与JPQL或HQL
- PWA(Progressive Web App)入门系列:Fetch Request Headers Response Body
- dragloader.js帮助你在页面原生滚动下实现Pull Request操作
- python编程语言-Python成为2018年度编程语言,遥遥领先于其他语言
- C++视频分解和图片合成视频代码
- 新手小白学JAVA-显示系统中文件的后缀名
- pkl形式的数据集读取和可视化
- html文本如何逐渐淡入,CSS如何实现文字淡入效果
- 【STM8】两个单片机之间的Lora通讯实验
- Keras_examples
- CCF论文列表(2022拟定)大更新!MICCAI空降B类!PRCV空降C类!ICLR继续陪跑...
- (转)超全整理!Linux性能分析工具汇总合集
- 遇到一位满嘴骚话的 HR,真牛皮!
- php必须安装什么才能运行,运行php需要什么?
- Excel地图可视化不好用?试试这款工具