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

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

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、磁盘存储、特殊硬件和操作系统软件的结合,来为程序提供-一个看上去统一的字节数组。 

大端法小端法

加一个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就是大端法的机器。

逻辑运算与位运算

    位运算

像蓝色与绿色结果为 011 变为蓝绿色

逻辑运算

 逻辑运算只有是非零的数就是 true 为0则为false;

总结:位运算有具体的值 而逻辑运算只有0和1的区别 。两者相同的情况是只有两个是二进制是一位。

整数的表示

 32位和64位计算机的最大区别主要有:
1. 地址空间大小
32位计算机的寻址空间最大为4GB,64位计算机的寻址空间可以达到16EB。这意味着64位计算机可以支持更大的物理内存。
2. 寄存器和汇编指令长度
32位计算机的寄存器和汇编指令长度为32位,64位计算机为64位。这使得64位计算机可以在单次操作中处理更多的数据。
3. 操作数的数据类型
32位计算机的原生数据类型为32位,如int等。64位计算机增加了64位的long和指针类型,可以更高效地进行64位运算。
4. 兼容性
大多数64位CPU可以兼容运行32位代码。但是32位CPU无法运行64位代码。
5. 内存寻址
32位计算机最大可以寻址4GB内存空间,64位计算机可以寻址超过16EB的内存空间。
6. 安全性
64位计算机提供了更高的安全性,如增加寄存器长度来防止缓冲区溢出。
7. 性能
64位计算机的运算性能更强,可以更好支持数据密集型和计算密集型应用。
综上,64位计算机在地址空间、性能等各方面都优于32位计算机。这使得64位计算机可以支持更大和更复杂的应用。

12345的二进制表示是 0011  0000 0011 1001

补码为                         1100  1111 1100   0111

12345的补码为 -12345的二进制形式

当1100  1111 1100   0111作为一个无符号数时数值为:-12345+32768+32768=53191 

当53191的二机制加上12345的值减一时为1111 1111 1111 1111为 INT_MAX 就是 65535

不减一的话为 0;  变为0000 0000 0000 0000;说明一个数的源码加补码为0;

                                                                

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/44341.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

存储过程——用户自定义变量、局部变量

1.用户自定义变量 在会话一定义的变量在会话二中是用不了的。 使用set指令定义变量,并为变量赋值,mysql中赋值推荐使用 :,因为在mysql中没有这个比较运算,也带有比较运算的功能,因此赋值运算推荐使用 : set myname itcast; se…

软件测试面试题及答案【史上最全】

以下是软件测试相关的面试题及答案,欢迎大家参考! 1、你的测试职业发展是什么? 测试经验越多,测试能力越高。所以我的职业发展是需要时间积累的,一步步向着高级测试工程师奔去。而且我也有初步的职业规划,前3年积累测试经验&…

边缘提取总结

边缘提取:什么是边缘? 图象的边缘是指图象局部区域亮度变化显著的部分,该区域的灰度剖面一般可以 看作是一个阶跃,既从一个灰度值在很小的缓冲区域内急剧变化到另一个灰度相 差较大的灰度值。 边缘有正负之分,就像…

uni-app:实现账号密码登录,并且实现当页面登录过该账号在下次登录时无需再输入账号密码(本地缓存实现)

效果 前端代码 一、完整代码 <template><view><view class"all"><view class"title"><image :src"title_login" alt"图片损坏" /></view><form class"login-form" submit"fo…

IDEA汉化插件

一、使用IDEA插件功能 重启IDEA 二、下载中文包 手动注入 进官网找自己IDEA对应版本的&#xff0c;下载压缩包&#xff1a;点我进官网 看自己的IDEA版本 把压缩包拖进去&#xff0c;IDEA里打开着文件也没关系 重启IDEA

[算法通关村] 1.2 链表的插入

上一节我们谈到了链表的概念&#xff0c;以及链表的创建方法&#xff0c;忘记的小伙伴可以复习一下&#xff1a; [算法通关村] 1.1 单向链表的创建 今天我们来探究一下链表的插入&#xff0c;链表的插入共有 3 种可能性&#xff0c;分别是在链表的头部插入、在中间插入&#x…

Cilium

Cilium是一个开源的、面向Kubernetes和容器环境的网络插件&#xff0c;用于提供高级的网络和安全功能。它是一个用于容器网络和网络层四、七层安全的项目&#xff0c;旨在简化网络和安全层的管理&#xff0c;并提供高性能和低延迟的数据包处理。Cilium通过BPF&#xff08;Berke…

UE5 用DLL文件制作第三方插件

本篇博文介绍了&#xff0c;如果在UE 中如何使用第三方库&#xff0c;及制作成插件的方法。 DLL 文件是上篇文章中创键的具体的方法见上篇文章。下面开始介绍方法 首先&#xff0c;创建一个空白的 UE5 C 项目&#xff0c;然后再创建一个空白内容的插件&#xff0c;如下图所示 …

STM32MP157驱动开发——按键驱动(线程化处理)

文章目录 “线程化处理”机制&#xff1a;内核函数线程化处理方式的按键驱动程序(stm32mp157)编程思路button_test.cgpio_key_drv.cMakefile修改设备树文件编译测试 “线程化处理”机制&#xff1a; 工作队列是在内核的线程的上下文中执行的 工作队列中有多个 work&#xff0…

【TypeScript】类型推断与类型别名的使用方式。

什么是类型推断&#xff1f; 在 TypeScript 中&#xff0c; 如果声明变量时&#xff0c;没有明确的指定类型&#xff0c;那么 TypeScript 会依照类型推论&#xff08;Type Inference&#xff09;的规则推断出一个类型。 以下代码虽然没有明确指定类型&#xff0c;但是会在编译的…

【043】解密C++ STL:深入理解并使用 list 容器

解密C STL&#xff1a;深入理解并使用list容器 引言一、list 容器概述二、list容器常用的API2.1、构造函数2.2、数据元素插入和删除操作2.3、大小操作2.4、赋值操作2.5、数据的存取2.6、list容器的反转和排序 三、使用示例总结 引言 &#x1f4a1; 作者简介&#xff1a;一个热爱…

浮点型在内存中的存储

目录 1.浮点数是什么&#xff1f; 2. 浮点数存储规则 1.浮点数是什么&#xff1f; 就是数学中的小数。 常见的浮点数&#xff1a; 3.14159 1E10&#xff08;1*10^10&#xff09; 浮点数家族包括&#xff1a; float、double、long double 类型。 浮点数表示的范围&#x…

Bean的生命周期

目录 1、实例化Bean 2、设置Bean的属性 3、初始化Bean &#xff08;1&#xff09;、执行通知 &#xff08;2&#xff09;、初始化的前置方法 &#xff08;3&#xff09;、初始化方法 &#xff08;4&#xff09;、执行自定义方法 &#xff08;5&#xff09;、初始化的后置…

API接口:如何通过使用手机归属地查询

随着手机普及率的不断增加&#xff0c;手机号码的信息查询也成为了一个非常实用的功能。本文将介绍如何通过使用手机归属地查询API接口实现查询手机号码所在地的功能。 首先&#xff0c;我们需要一个可以查询手机号码所在地的API接口。目前市面上有很多免费或付费的API接口可供…

《Ansible自动化工具篇:ubuntu操作系统基于ansible工具一键远程离线部署之K8S1.24.12二进制版集群》

一、部署背景 由于业务系统的特殊性&#xff0c;我们需要针对不同的客户环境部署二进制版K8S集群&#xff0c;由于大都数用户都是专网环境&#xff0c;无法使用外网&#xff0c;为了更便捷&#xff0c;高效的部署&#xff0c;针对业务系统的特性&#xff0c;我这边编写了 基于a…

uni-app中的uni.requireNativePlugin()

这个方法是用来引入原生插件的方法&#xff0c;自 HBuilderX 1.4 版本起&#xff0c;uni-app 支持引入原生插件&#xff0c;使用方式如下&#xff1a; const PluginName uni.requireNativePlugin(PluginName); // PluginName 为原生插件名称 引入插件的类型有三种&#xff1…

【idea工具】idea工具,build的时候提示:程序包 com.xxx.xx不存在的错误

idea工具&#xff0c;build的时候提示:程序包 com.xxx.xx不存在的错误&#xff0c;如下图&#xff0c;折腾了好一会&#xff0c; 做了如下操作还是不行&#xff0c;idea工具编译的时候&#xff0c;还是提示 程序包不存在。 a. idea中&#xff0c;重新导入项目&#xff0c;也还…

Mysql-主从复制与读写分离

Mysql 主从复制、读写分离 一、前言&#xff1a;二、主从复制原理1.MySQL的复制类型2. MySQL主从复制的工作过程;3.MySQL主从复制延迟4. MySQL 有几种同步方式&#xff1a;5.Mysql应用场景 三、主从复制实验1.主从服务器时间同步1.1 master服务器配置1.2 两台SLAVE服务器配置 2…

小程序自定义步骤条实现

效果展示&#xff1a; 支持背景颜色自定义 <view class"hl_steps"><view class"hl_steps_item" wx:for"{{steps}}" wx:key"id"><view class"hl_steps_item_circle_out" style"background-color: {{col…

【Linux网络】 网络套接字(三)socket编程_TCP网络程序

目录 TCP网络程序服务端创建套接字并绑定服务端监听服务端获取连接服务器处理请求 客户端客户端创建套接字客户端连接服务器客户端发起请求测试 服务器存在的问题多进程版的TCP网络程序多线程版的TCP网络程序线程池版的TCP网络程序 TCP网络程序总结图 TCP网络程序 服务端 创建…