32位,64位?
2019-10-19 本文已影响0人
镜中无我
- 寄存器的大小,总线传输单位(字长),虚拟内存地址空间大小,虚拟地址位数,也就是指针变量的位数
- 计算机世界中所谓的指向一般都是体现为一个变量保存内存空间的某个地址,比如PC总是指向主存的某一条指令,意思是保存该指令的地址
- 如何解释不同的上(下文+位)指令是由不同的指令集决定的
- 指令的执行
加载,存储,操作,调转
- 大端小端指的是单个数据的存储结构,如果对单个数据进行操作,大端小段是透明的,但是一个数据如果需要拆开讨论,则需要考虑。主流的机器使用小端法
字节顺序会产生影响的几种场景:
- 网络传输二进制数据,两端使用不同的字节组织方式,则会出错. 解决办法是将让接收方和发送方遵从一致的网络标准
- 检查机器级程序(读写)时,需要考虑
- 规避正常的类型系统时
- 对字节顺序和字节大小不敏感(ASCII)的文本数据比二进制数据有更好的平台移植性
- 传统的unicode的存储编码(字符集规模小于四个字节表示的最大长度)采用32位也就是四字节,而utf-8使用变长字节编码,有效的兼容ASCII编码,同时也有效的节约了存储空间
- 二进制机器码是平台不兼容的,这就是为什么不能直接移植二进制程序而必须重新编译的原因,而高级语言屏蔽了底层 的编译阶段,对于不同的平台使用相应的编译器可以得到相同的执行效果(但是有时候需要为了适应平台对程序做改动,java语言有效的进一步屏蔽的编译器的差异,使用虚拟机统一上层语言,同时内部尝试兼容不同的平台,从而最大程度的提高平台的兼容性)
- 掩码可以有效的屏蔽部分位上的作用,而仅仅关注特定的位域
- 加法优先级比移位高
- 算术右移和逻辑右移(考虑符号位)
- 当移动的位数过大时,采取对容量取余逇方式