首页 > 其他分享 >【深入理解计算机系统】2.信息的表示和处理

【深入理解计算机系统】2.信息的表示和处理

时间:2023-07-12 09:03:21浏览次数:27  
标签:计算机系统 符号 二进制 补码 负数 理解 深入 ... 正数

2.1 信息存储

机器级的程序将存储器视为一个字节数组,称为虚拟存储器(virtual memory)。存储器的每个字节都由一个唯一数字标识,称为该字节的地址(address),所有地址的集合称为虚拟地址空间(virtual address space)。

2.1.1 字

每台计算机都有一个字长(word size),指明整数和指针数据的标称大小(norminal size)。虚拟地址就是这么编码的,对于32位字长的计算机,限制了他的虚拟地址空间位232-1位4GB,对于64位字长的计算机,内存最大支持128G。

2.1.2 寻址和字节顺序

一个对象存储有大端法和小端法,最低有效位在最前面的方式被称为小端法,另一种称为大端法。许多芯片在加电启动时确定字节顺序规则。假设有一个0x1234567在地址范围0x100~0x103存储,顺序如下

 大端法  0x100  0x101 0x102 0x103  
 ...  01  23  45  67 ... 
 小端法  0x100  0x101 0x102 0x103  
 ... 67 45 23  01 ... 

2.1.3 布尔代数和环

"~":逻辑运算NOT

"&":逻辑运算AND

" | ":逻辑运算OR

" ^ ":异或运算EXCLUSIVE-OR,PQ为真但不全为真时成立

~       & 0 1     | 0 1     ^ 0 1
0 1 0 0 0 0 0 1 0 0 1
1 0 1 0 1 1 1 1 1 1 0

2.1.4 位级运算

C的表达式 二进制表达式 二进制结果 C的结果
~0x41 ~[01000001] [10111110] 0xBE
~0x00 ~[00000000] [11111111] 0xFF
0x69&0x55 [01101001]&[01010101] [0100001] 0x41
0x69 | 0x55 [01101001] | [01010101] [01111101] 0x7D
x << k 将x向左移动k位,丢掉k个最高位,右端补k个0

 

2.2 整数表示

一个整数数据类型有 w 位,可以写成[xw-1, xw-2, ..., x0],可以得到无符号数的二进制表示形式(式1)

在计算机中希望使用二进制补码形式表现有符号数(负数),其中最高位解释为负权或符号位,正数的原码、反码、补码都相等,负数的反码是除符号位外取反,补码等于反码加1(式2)

数字 原码 反码 补码 直接计算
-10 10001010 11110101 11110110 -1*27+26+25+24+22+21=-10
10 00001010 00001010 00001010 23+21=10

 从这里理解有符号数和无符号数的映射,有符号数的正数部分对应了无符号数相同大小的正数部分,而有符号数负数的部分对应了更大的无符号数部分,反过来无符号数较大的部分会对应有符号数的负数

对于数字的截断,如果将一个32位整数截断到16位,会截断32位前面的16位,保留后面的16位

 

2.3 整数运算

2.3.1 无符号加法

无符号运算可以被视为一种模的运算。例如考虑一个四位数表示,x=9和y=12,[1001]和[1100]。它们的和是21,五位表示为[10101],但如果截断最高位会得到[0101],也就是5,这和 21 mod 16 = 5一致

2.3.2 二进制补码加法

二进制补码运算中存在移除情况,根据式2可以很好理解,0111 1111是正数最大值,而1000 0000是负数最小值,所以正数向上溢出后会是最小的负数,而负数向下溢出后是最大的正数

2.3.3 二进制补码的非

标签:计算机系统,符号,二进制,补码,负数,理解,深入,...,正数
From: https://www.cnblogs.com/stuxuan/p/17545669.html

相关文章

  • 【Netty】「源码解析」(三)设置连接超时:深入分析 ChannelFuture.sync() 的执行过程
    前言本篇博文是《从0到1学习Netty》中源码系列的第三篇博文,主要内容是深入分析连接超时的实现原理,包括了connect方法的源码解析和ChannelFuture.sync()执行过程的解析。,往期系列文章请访问博主的Netty专栏,博文中的所有代码全部收集在博主的GitHub仓库中;介绍在实际应用中,当......
  • 【深入浅出】你必须知道的 InnoDB 底层设计
    ......
  • 【深入浅出】你必须知道的 InnoDB 锁(一)
    ......
  • 【.NET源码解读】深入剖析中间件的设计与实现
    合集-.NET源码解读系列(4) 1..NET通过源码深究依赖注入原理05-172.【.NET源码解读】Configuration组件及自动更新05-303..NET源码解读kestrel服务器及创建HttpContext对象流程06-164.【.NET源码解读】深入剖析中间件的设计与实现06-29收起 .NET本身就是一个基于......
  • 对话AI--AI与人类共存的未来,该怎样理解人与AI的关系
    AI回答一:人类与AI共存的未来是一个复杂而有挑战性的议题。在这个未来,人类和AI之间的关系应该是相互依存、合作互补的。首先,人类和AI可以共同合作,以提高生产力、创造力和效率。AI可以帮助人类完成重复性、繁琐或危险的任务,从而释放人类的时间和精力去专注于更有意义和创造性......
  • 深入浅出玩转FPGA阅读随笔
    笔记4语法学习的经验之谈可综合的语法:可实现硬件电路的语法行为级语法:不能够实现硬件电路却常常可作为仿真验证的高层次语法笔记9复位设计上升沿触发的D触发器内部电路结构前一级的内部电路实际上是实现了一个“保持”的功能,如果复位信号的释放发生在靠近时钟沿很近的时间点......
  • 理解信息化、数字化和智能化:解析背后的关系与特点
        近年来,数字化和数字化转型已经成为非常流行的名词。对企业来说,数字化转型已经成为不可或缺的一部分。许多企业都在积极研究和实施数字化转型。然而,很多人对于信息化、数字化和智能化的具体内涵和区别并不是很清楚。从字面意义上来看,信息化、数字化和智能化确实代表了不......
  • 深入解析Python文件操作:打开文件处理的大门
    在Python中,文件操作是一项常见且重要的任务。通过文件操作,我们可以读取文件内容、写入新的数据以及对文件进行其他的操作。本文将介绍Python中的文件操作,包括打开文件、读取文件、写入文件和关闭文件等基本操作,以及一些常用的文件处理技巧和最佳实践。一、打开文件在进行文件操......
  • 关于事务的一致性理解
    事物一致性就是数据库由一个一致性状态转变为另一个一致性状态。举个粒子,张三给李四转账100元。事务要做的是从张三账户上减掉100元,李四账户上加上100元。一致性的含义是其他事务要么看到张三还没有给李四转账的状态,要么张三已经成功转账给李四的状态,而对于张三少了100元,李四还没......
  • apache深入优化
    挂载云计算光盘安装httpd优化httpd添加系统服务添加目录创建网页改写httpd主配置文件重启服务查看当前工作模式配置apache工作模式prefork优化配置hosts文件进行压力测试查看进程树删除httpd安装包后重新配置安装(修改apache工作模式worker)查看当前工作模式修改工作模式配置文件重新......