信息的表示与处理 (深入理解计算机系统第二章)(上)

简介: 信息的表示与处理 (深入理解计算机系统第二章)(上)

刚学习这本书没多久,感觉里面讲的东西挺多的,前后的关联性比较强。学着后面的还需要看看前的才可以更好的理解。


2.1信息存储


无符号(unsigned) 编码是基于传统的二进制表示法的,表示大于或者等于零的数字。


二进制补码(two's-complement)编码是表示有符号整数的最常见的方式,

有符号整数就是为正或者为负的数字。


浮点数(floating-point) 编码是表示实数的科学记数法的以二为基数的版本。计算机用这些不同的表示方法实现算术运算,例如加法和乘法,类似于相应的整数和实数运算。

计算机的表示法用有限的位数来对一个数字编码,因此,当结果太大以至不能表示时,某些运算就会溢出(overflow)。 这会导致某些令人吃惊的后果。例如,在大多数今天的计算机上,计算表达式200*300*400*500会得出-884901 888。这违背了整数运算的属性一计算-组正数的乘积产生了一个为负的结果。


大多数计算机使用8位的块,或叫做字节(byte), 来作为最小的可寻址的存储器单位,而不是

访问存储器中单独的位。机器级程序将存储器视为-一个非常大的字节数组,称为虚拟存储器(virtualmemory)。存储器的每个字节都由-一个惟-的数字来标识,称为它的地址(address),所有可能地址的集合就称为虚拟地址空间( virtual address space)。正如它的名字表明的,这个虚拟地址空间只是一个展现给机器级程序的概念性映像(image)。实际的实现(见第10章)使用的是随机访问存储器RAM、磁盘存储、特殊硬件和操作系统软件的结合,来为程序提供-一个看上去统一的字节数组。  


大端法小端法

0c7e5a4c01c9488599da5b3fb83d68cb.png

加一个12345的二进制转化与16进制转换


12345的二进制表示是:

11000000111001

转换步骤:

1. 12345 ÷ 2 = 6172...1  

2. 6172 ÷ 2 = 3086...0

3. 3086 ÷ 2 = 1543...0

4. 1543 ÷ 2 = 771....1

5. 771 ÷ 2 = 385....1  

6. 385 ÷ 2 = 192....1

7. 192 ÷ 2 = 96.....0

8. 96 ÷ 2 = 48.....0

9. 48 ÷ 2 = 24.....0

10. 24 ÷ 2 = 12.....0

11. 12 ÷ 2 = 6.......0

12. 6 ÷ 2 = 3.......0

13. 3 ÷ 2 = 1.......1

14. 1 ÷ 2 = 0.......1

所以12345的二进制表示是11000000111001。


12345的十六进制表示是:

3039

转换步骤:

1. 12345 分解成12345 = (1 * 16^3) + (2 * 16^2) + (3 * 16^1) + (9 * 16^0)

2. 1 * 16^3 = 4096   (1 -> 十六进制数字1)

3. 2 * 16^2 = 512    (2 -> 十六进制数字2)

4. 3 * 16^1 = 48     (3 -> 十六进制数字3)

5. 9 * 16^0 = 9      (9 -> 十六进制数字9)

3. 将每个部分的十六进制数字组合:

  4096 -> 1000

  512 -> 0200

   48 -> 0030

    9 -> 0009

4. 合并每个部分的十六进制数字:

  1000 0200 0030 0009

5. 去掉前导0,得到十六进制数:

  3039

所以,12345的十六进制表示是3039。


像Sum关于12345 最低有效位 39,先输出为小段法的机器如Linux NT,但是像sum是最后输出30就是大端法的机器。

目录
相关文章
|
运维 监控 安全
阿里巴巴DevOps实践指南(十五)| 应用环境能力
应用环境解决方案并不仅仅是将应用的开发环境、基础环境搭建起来即可,还涉及到环境的稳定性如何保证,基于环境如何规范变更的流程,基于环境如何提升开发效率等等。环境治理需要站在更高的角度,综合看待上述问题,否则就会陷入环境问题年年治理、年年被吐槽的怪圈。
阿里巴巴DevOps实践指南(十五)| 应用环境能力
|
7月前
|
机器学习/深度学习 人工智能 算法
快瞳犬种识别效果图示,120种狗品种精准覆盖
犬种识别技术已从实验室走向大众,基于深度学习的卷积神经网络(CNN)和YOLO系列算法,可高效实现犬种分类与目标检测。本文介绍了快瞳犬种识别的技术原理、训练代码及应用场景,包括宠物管理、遗传疾病研究、公共安全、城市管理及遗失宠物寻找等。通过Python代码加载YOLOv8模型并进行训练,模型能在图像中标注犬种及其边界框,为智慧生活提供技术支持。
|
2月前
|
安全 程序员 API
深夜加班崩溃时,我如何用“企微iPad协议接口”救活了一个项目
凌晨两点,公司只剩我还在加班。客户消息积压告急,老旧客服系统崩溃,技术债压顶。第37条告警弹出时,我在论坛发现“企业微信iPad协议接口”的线索。冒险尝试,通宵调试,终以WebSocket长连接+心跳机制构建自动回复系统。三天后,毫秒级响应上线,一人一系统取代五人轮班。技术瓶颈,往往是认知瓶颈;真正的创新,在合规与突破间寻找平衡。
155 1
|
Python
Python三引号用法与变量详解
本文详细介绍了Python中三引号(`"""` 或 `'''`)的用法,包括其基本功能、如何在多行字符串中使用变量(如f-string、str.format()和%操作符),以及实际应用示例,帮助读者更好地理解和运用这一强大工具。
1189 2
|
JSON Rust IDE
全网最全的Rust学习资源
学习Rust过程中整理了一些学习资料分享一下。
786 1
|
SQL 安全 Java
安全测试之推荐工具
【2月更文挑战第2天】安全测试之推荐工具
1170 2
|
运维 监控 Dubbo
阿里云互联网中间件五剑客之——企业级分布式应用服务EDAS
阿里云互联网中间件五剑客之——企业级分布式应用服务EDAS自制脑图, 企业级分布式应用服务 EDAS(Enterprise Distributed Application Service)是一个应用托管和微服务管理的 PaaS 平台,提供应用开发、部署、监控、运维等全栈式解决方案,同时支持 Spring Cloud、Apache Dubbo(以下简称 Dubbo )、HSF 等微服务运行环境,助力您的各类应用轻松上云。
618 88
阿里云互联网中间件五剑客之——企业级分布式应用服务EDAS
|
算法 NoSQL Java
实战-全局唯一邀请码功能实现
实战-全局唯一邀请码功能实现
1870 0
|
XML JSON Java
【SpringBoot学习笔记 二】YAML格式文件配置方式详解
【SpringBoot学习笔记 二】YAML格式文件配置方式详解
1558 0
|
机器学习/深度学习 Unix TensorFlow
opencv安装实录附十几行C++实现的一个人脸识别demo
opencv安装实录附十几行C++实现的一个人脸识别demo
544 0
opencv安装实录附十几行C++实现的一个人脸识别demo