32位和64位的区别--深入理解计算机系统笔记一
来源:互联网 发布:unity3d 5.x下载 编辑:程序博客网 时间:2024/05/19 23:55
先明确一下几个概念:
位:是一个二进制位:1或0
字长:整数和指针数据的标称大小(norminal size),就是这里的32位或64位
内存:用来装载程序(指令)和数据的地方(还包括全局数据区、堆、栈、系统核心程序),内存地址是一个整数(如c语言中的指针指向的内存地址),cpu从内存地址读取指令,执行加减或逻辑运算操作。
最大的内存地址是整数的最大值,在32位的操作系统中,整数由32位二进制数组成,最大值等于2^32-1, 寻址空间是2^32-1,大约是4G
因此说32位操作系统内存最大只能是4G,而64位就远不止4G了。
C语言中各种数据类型在32位和64位的字节数大部分都相同:
char :1个字节, 8位 ,表示十进制区间: -128 ~ 127
short int :2个字节,16位 -2^15~(2^15-1) short int可以简写为short
int : 4个字节,32位 -2^31~(2^31-1) (很多地方写着int是2个字节,那是在早期16位系统下)
(特殊情况:在 64位机器下的许多程序设计环境,“int”变量仍然是 32位宽,不过“long”和指针是 64位宽,上述内容称为 LP64 数据模型。另一个选择是 ILP64 数据模型,三种数据型态都是 64位宽,甚至 SILP64 连“short”变量也是 64位宽。
参考:http://zh.wikipedia.org/wiki/64%E4%BD%8D%E5%85%83 )
float : 4个字节
double:8个字节
long long int 8个字节
不同的地方:
char* 32位下是4个字节 vs 64位下是8个字节
long int 32位下是4个字节 vs 64位下是8个字节
#include <iostream>int main (int argc, char* argv[]){char a='a';char * cStar;int i=1;short int si=1;long l=123l; long int li=123L;long long int ll=123;float f=1.1f;double d=1.1;std::cout<<"char: "<<sizeof(a)<<std::endl;std::cout<<"char*: "<<sizeof(cStar)<<std::endl;std::cout<<"int: "<<sizeof(i)<<std::endl;std::cout<<"short int: "<<sizeof(si)<<std::endl;std::cout<<"long: "<<sizeof(l)<<std::endl;std::cout<<"long int : "<<sizeof(li)<<std::endl;std::cout<<"long long : "<<sizeof(ll)<<std::endl;std::cout<<"float: "<<sizeof(f)<<std::endl;std::cout<<"double: "<<sizeof(d)<<std::endl;}
32位系统下输出:
char: 1
char*: 4
int: 4
short int: 2
long: 4
long int : 4
long long : 8
float: 4
double: 8
- 32位和64位的区别--深入理解计算机系统笔记一
- 深入理解计算机系统 位操作
- 深入理解计算机系统笔记(一)关于位运算求整数平均值
- 《深入理解计算机系统》阅读笔记--进程和线程的区别?
- 《深入理解计算机系统》上的一道题目,关于位的。
- 《深入理解计算机系统》笔记一
- 32位和64位的理解
- 64位和32位的区别
- 《深入理解计算机系统》阅读笔记三——位运算 逻辑运算 移位运算
- 《深入理解计算机系统》学习笔记(一):信息的表示和处理
- [深入理解计算机系统]C语言中的位运算、逻辑运算和移位运算
- 《深入理解计算机系统》学习笔记(一)
- 深入理解计算机系统学习笔记(一)
- 《深入理解计算机系统》读后笔记一
- 深入理解计算机系统 笔记(一)
- 信息就是位+上下文 读深入理解计算机系统
- 深入理解计算机系统 1.1 信息就是位 + 上下文
- 【C语言】位的运算(深入理解计算机系统第三版习题2.12)
- 通信行业应届毕业生起薪【2012年新版】
- 在升序数组中查找和等于给定值的两个数
- ssh2项目例子(政府类)
- 建设项目经济评价信息化手段
- 和为n的连续正数序列
- 32位和64位的区别--深入理解计算机系统笔记一
- macvim
- Java程序员的发展前景
- CentOS6.2下一步一步源代码安装OpenStack(十)Swift测试
- VC中自画控件的过程和方法(CButton, CEdit, etc)
- zoj1001
- os NSNumber NSDate Usage
- [技巧]怎样用WinRAR解压7z.001,7z.002……格式的文件
- C#动态绑定Menu控件