32位和64位系统区别及int字节数

一)64位系统和32位有什么区别?

1、64bit CPU拥有更大的寻址能力,最大支持到16GB内存,而32bit只支持4G内存

2、64位CPU一次可提取64位数据,比32位提高了一倍,理论上性能会提升1倍。但这是建立在64bit操作系统,64bit软件的基础上的。

什么是64位处理器?

之所以叫做“64位处理器”,是因为电脑内部都是实行2进制运算,处理器(CPU)一次处理数据的能力也是2的倍数。8位处理器、16位处理器、32位处理器和64位处理器,其计数都是2的倍数。一次处理的数据越大,该电脑处理信息的能力越来越大;因此64位处理在先天就比32位处理器具有快速的能力。那为什么不用更高级的128位处理器呢?因为位数越高,处理器芯片的设计也就越复杂,目前的技术水平暂时无法制造这么复杂的芯片。

64位处理器之失

※硬件———缺乏驱动程序,很多现有硬件无法使用

※软件———操作系统不是问题,但是软件出现不兼容难题

64位处理器之得

※硬件———更快的执行速度,更大的内存管理

※软件———最新的尖端软件首先出现在64位平台

(二)数据类型对应字节数

程序运行平台
不同的平台上对不同数据类型分配的字节数是不同的。
个人对平台的理解是CPU+OS+Compiler,是因为:
1、64位机器也可以装32位系统(x64装XP);
2、32位机器上可以有16/32位的编译器(XP上有tc是16位的,其他常见的是32位的);
3、即使是32位的编译器也可以弄出64位的integer来(int64)。
以上这些是基于常见的wintel平台,加上我们可能很少机会接触的其它平台(其它的CPU和OS),所以个人认为所谓平台的概念是三者的组合。
虽然三者的长度可以不一样,但显然相互配合(即长度相等,32位的CPU+32位的OS+32位的Compiler)发挥的能量最大。
理论上来讲 我觉得数据类型的字节数应该是由CPU决定的,但是实际上主要由编译器决定(占多少位由编译器在编译期间说了算)。

常用数据类型对应字节数
可用如sizeof(char),sizeof(char*)等得出

32位编译器:

  char :1个字节char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器)short int : 2个字节int:  4个字节unsigned int : 4个字节float:  4个字节double:   8个字节long:   4个字节long long:  8个字节unsigned long:  4个字节

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个字节

*要知道数据类型表示范围,先用sizeof求出数据类型所占的字节数就可以得出表示范围了。除了float 和 double ,其他求表示范围的公式是:
-2(n-1)~-(2(n-1)-1),n 为数据类型所占的bit数。
*char就是1字节(固定不变),short不少于2字节,int不少于short,
long不少于4字节,且long不少于int,long long不少于long。

*float和double的范围是由指数的位数来决定的。float的指数位有8位,而double的指数位有11位,分布如下:
float:1bit(符号位)+8bits(指数位+23bits(尾数位)
double:1bit(符号位)+ 11bits(指数位)+ 52bits(尾数位)

ARM不同位数系统int字节数区别相关推荐

  1. 32位和64位系统区别及int字节数

    (一)64位系统和32位有什么区别?http://zhidao.baidu.com/question/100772591.html 1.64bit CPU拥有更大的寻址能力,最大支持到16GB内存,而 ...

  2. 操作系统位数与数据字节数的关系

    各类型的数据长度是由编译器决定的: 发现 数据类型占内存的位数实际上与操作系统的位数和编译器(不同编译器支持的位数可能有所不同)都有关,具体某种数据类型占字节数得编译器根据操作系统位数两者之间进行协调 ...

  3. c语言sizeof计算int字节数,c语言sizeof获取数据类型长度

    先看代码在看说明和和结果会让人更多的更加纯粹的思考,同时减少多余词汇造成的负担,这里只通过int类型为例试验,其他类型雷同 注意在使用sizeof时与你系统是32位或者64位有关系,同时和你环境中编译 ...

  4. 32位操作系统和64位操作系统每种类型占用的字节数、内存对齐原则

    32位操作系统: 1:整形 int 4字节 long int 4字节 short 2字节 unsigned int 4字节 unsigned long int 4字节 unsigned short 2 ...

  5. int 字节在32位 64位系统的区别

    一)64位系统和32位有什么区别? 1.64bit CPU拥有更大的寻址能力,最大支持到16GB内存,而32bit只支持4G内存 2.64位CPU一次可提取64位数据,比32位提高了一倍,理论上性能会 ...

  6. 32位与64位系统基本数据类型的字节数

    32位与64位系统数据类型 不同的平台上对不同的数据类型分配的字节数是不同的,一般的,数据类型的字节数是由编辑器决定的(编译期间决定数据类型长度). 简单来说,平台就是CPU+OS+Compiler, ...

  7. 在32位、64位操作系统下各数据类型所占的字节数

    点击打开链接 在32位.64位系统当中,唯一改变的是指针的长度;在32位系统当中是4个字节.64位则是8个字节.所谓的32位.64位,这个指的是寄存器的位宽. 32位平台下结果: 64位平台下结果: ...

  8. 32位系统和64位系统各种数据类型占用的空间(字节数)

    不同的平台上对不同的数据类型分配的字节数是不同的,一般的,数据类型的字节数是由编辑器决定的(编译期间决定数据类型长度). 简单来说,平台就是CPU+OS+Compiler,cpu的位是指一次性可处理的 ...

  9. C语言入门经典——基础知识(数据类型)(32位与64位系统基本数据类型的字节数)

    一.读取数据的格式说明符                                                  除此之外:     sizeof(char) =   1          ...

最新文章

  1. c语言中int和指针和字符所占字节
  2. AWS攻略——使用CodeBuild进行自动化构建和部署静态网页
  3. linux c implicit declaration of function 警告的解决方法
  4. jar包反编译成源代码_IntelliJ IDEA 如何设置自动下载源代码和文档
  5. ubuntu12.04平台下a80编译环境搭建
  6. 【今日CV 计算机视觉论文速览】Fri, 8 Mar 2019
  7. java json重命名,eclipse中java变量怎么变成json格式的编码?
  8. 【clickhouse】使用waterdrop将Hive中的数据导入ClickHouse
  9. 大数据之-Hadoop之HDFS_NameNode故障处理_NameNode元数据恢复_案例---大数据之hadoop工作笔记0073
  10. 远程查看服务器版本,远程管理控制服务器(服务器远程控制工具)V4.2.2019.5.27 官方版...
  11. CentOS8 安装 Docker
  12. java 绩效考核系统源码_基于jsp的企业绩效考核系统-JavaEE实现企业绩效考核系统 - java项目源码...
  13. qt使用QZxing生成二维码
  14. 获取请求真实IP地址的工具类
  15. 3Dmax移动,旋转,缩放图标不显示
  16. php 验证码一直不对,php验证码错误
  17. android 首页里布局,android复杂首页布局
  18. 3682. 宇恒棋 (华师月赛)
  19. python读取图片、保存图片的方法
  20. tiny core linux网络连接,用Tiny Core Linux打造纯Firefox上网系统(概要)

热门文章

  1. 飞康CEO:敢于向传统的灾备法则说“不”
  2. .net core linux 编译,.NET Core 源码编译的问题解析
  3. oracle存储过程季度方法,Oracle存储过程、触发器实现获取时间段内周、月、季度的具体时间...
  4. 链表(Linked List)之单链表
  5. 单例设计模式-懒汉式(线程安全)
  6. java的安装和配置
  7. uboot将命令结构体单独存放在某个代码段的方法
  8. *p++,*(p++),(*p)++的区别
  9. docker安装mysql_Docker 安装 MySQL
  10. Python sqlalchemy orm 多外键关联