1.CPU位数=CPU中寄存器的位数=CPU能够一次并行处理的数据宽度(位数)=数据总线宽度; //现在的计算机处理器一般都是64位,这是硬件的事。

2.CPU为了实现其功能设计了指令集,即是CPU的全部指令,这是机器语言。计算机的所有功能都是基于CPU的指令集。指令集和CPU的位数是有联系的。如Intel 8086 CPU 是16位,其指令集也是16位。如Intel 80386DX CPU 是32位,其指令集也是32位,但它也保持原16位指令集,这是为了向上兼容。有64位CPU上运行32位操作系统、32位CPU上运行16位操作系统的情况,也是为了向上兼容。

3.操作系统位数 = 其所依赖的指令集位数 <= CPU位数

4.计算机字长(机器字长)取决于数据总线的宽度,通常就是CPU一次能处理的数据的位数(CPU位数)。像平时我们买电脑说的64位的处理器,指的就是字长为64的CPU。至于装32位还是64位的系统,随便。

5./*以下经WinXP和Win7 64位系统测试,应该跟系统没关系,而是跟CPU位数、或者编译器有关系,我用的是vs2008,我这两台电脑都是64位CPU,所以结果是一样的,但我还是试了试,果然是一样的,同一类型的有符号和无符号长度一样,只不过值的范围不一样*/

  bool=1字节;

  char=1字节;//signed可省略(-2^7~2^7-1),unsigned不可省略(0~2^8-1)

  short=2字节;//指int的short,int可省略,signed可省略(-2^15~2^15-1),unsigned不可省略(0~2^16-1)

  int=4字节;//signed可省略(-2^31~2^31-1),unsigned不可省略(0~2^32-1)

  long=4字节;//指int的long,int可省略,signed可省略(-2^31~2^31-1),unsigned不可省略(0~2^32-1)

  float=4字节;

  double=8字节;

6.总结: 在标准c++中,int的定义长度要依靠你的机器的字长,也就是说,如果你的机器是32位的,int的长度为32位,如果你的机器是64位的,那么int的标准长度就是64位,比如16位机上,sizeof(int)=2,而32位机上sizeof(int) = 4;32位机上sizeof(long) = 4,而64位机上sizeof(long) = 8。 但是在32位机器和64机器中int类型都占用4个字节,因为一般编译器可以根据自身硬件来选择合适的大小,但是需要满足约束:short和int型至少为16位,long型至少为32位,并且short型长度不能超过int型,而int型不能超过long型(C++没有规定每个类型必须要占多少字节,而是规定了最少占多少等约束)。这即是说各个类型的变量长度是由编译器和硬件来决定的,而当前主流的编译器中一般是32位机器和64位机器中int型都是4个字节(例如,GCC)。

CPU位数、操作系统位数、机器字长、C/C++基本数据类型长度的更多相关文章

  1. 【编程开发】x86,I386,i686, x86_64, x64,amd64、Windows Linux AIX下查看CPU位数和操作系统位数、rpm包名

    a2ps-4.13b-57.2.el5.i386.rpm 每一个rpm包的名称都由"-"和"."分成了若干部分.就拿 a2ps-4.13b-57.2.el5.i ...

  2. 比特(bit)、字,字节(B)存储单位之间的关系+其与操作系统位数的关系+不同编译器编译方式下数据类型的表示范围

    1.在表示网络传输速度中与表示存储单位的不同: 表示存储单位时:1kB=1024B,但在网络中表示传输速度是1KB=1000B 2.下面介绍表示存储单位时的关系及其与操作系统位数的关系: 1B=8bi ...

  3. 【学习笔记】比特(bit)、字,字节(B)存储单位之间的关系+其与操作系统位数的关系+不同编译器编译方式下数据类型的表示范围

    1.在表示网络传输速度中与表示存储单位的不同: 表示存储单位时:1kB=1024B,但在网络中表示传输速度是1KB=1000B 2.下面介绍表示存储单位时的关系及其与操作系统位数的关系: 1B=8bi ...

  4. Linux 操作系统位数(32or64)识别

    Linux 操作系统位数识别: LINUX 32位操作系统:Linux x86   i586  i386  i686 i... LINUX 64位操作系统:Linux x64x86_64  X64 . ...

  5. Linux操作系统位数查看

    --Linux操作系统位数查看----------------------2014/05/11 查看linux是多少位的几位方法:查看linux机器是32位还是64位的方法: 方法一:file /sb ...

  6. CentOS系统内核、操作系统位数以及系统参数查看

    2016-07-29 一.系统内核的查看方法 1.uname -a 显示详细的内核信息 Linux localhost.localdomain 3.10.0-229.el7.x86_64 #1 SMP ...

  7. VC获得window操作系统版本号, 获取操作系统位数

    原文链接: http://www.greensoftcode.net/techntxt/2014315195331643021849 #include <Windows.h>include ...

  8. int,double与机器字长

    机器字长:计算机能直接处理的二进制数据的位数,它决定了计算机的运算精度想深入了解. 学好汇编语言对你帮助非常大.汇编语言中的,最基本的数据类型有: (1) byte (2)word (3)double ...

  9. int 占一个机器字长

    int与short int是不一样的. C++标准规定,int占一个机器字长.在32位系统中int占32位,也就是4个字节, 而在老式的16位系统中,int占16位,即2个字节. 而C++标准中只限制 ...

随机推荐

  1. 快速提取windows备份

    windows7的备份功能,还是有很多可取之处的. 其功能的本质是将电脑的分区做成VHD影像文件. 所以,如果你熟悉VHD,可以直接挂载VHD影像,提取文件或恢复系统,或者进入winpe下操作更加简单 ...

  2. [GraphQL] Query Local and Remote Data in Apollo Link State

    In this lesson, you will learn how to query local and remote data in Apollo Link State in the same c ...

  3. Project Euler problem 68

    题意须要注意的一点就是, 序列是从外层最小的那个位置顺时针转一圈得来的.而且要求10在内圈 所以,这题暴力的话,假定最上面那个点一定是第一个点,算下和更新下即可. #include <iostr ...

  4. Chrome插件(扩展)

    [干货]Chrome插件(扩展)开发全攻略   写在前面 我花了将近一个多月的时间断断续续写下这篇博文,并精心写下完整demo,写博客的辛苦大家懂的,所以转载务必保留出处.本文所有涉及到的大部分代码均 ...

  5. Codeforces Round #240 (Div. 1) B. Mashmokh and ACM DP

                                                 B. Mashmokh and ACM                                     ...

  6. FFmpeg将多张图片合成视频 子视频合并

    FFmpeg将多张图片合成视频 - CSDN博客 https://blog.csdn.net/wangshuainan/article/details/77914508 Slideshow – FFm ...

  7. CSP 201703-4 地铁修建【最小生成树+并查集】

    问题描述 试题编号: 201703-4 试题名称: 地铁修建 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 A市有n个交通枢纽,其中1号和n号非常重要,为了加强运输能力,A市 ...

  8. Android编译详解之lunch命令 【转】

    本文转载自: Android编译详解之lunch命令 (2012-10-08 10:27:55) 转载▼ 标签: it 分类: android内核剖析     Android的优势就在于其开源,手机和 ...

  9. web filter用spring注入对象

    tomcat容器初始化顺序监听器–>过滤器–>servlet,因此springMVCservlet初始化之前,过滤器就已经初始化过了,如果在过滤器中需要注入spring容器管理的bean是 ...

  10. 【SCOI 2007】 降雨量

    [题目链接] 点击打开链接 [算法] 线段树 此题细节很多,写程序时要细心! [代码] #include<bits/stdc++.h> using namespace std; #defi ...