【计算机组成原理】数据的表示和运算·进位计数制
🚩 本文已收录至专栏:计算机基础
我们可以通过显示屏看到各种形式的数据信息,但数据是如何在计算机中表示呢?运算器又是如何实现数据的算数、逻辑运算?
十进制数是最适合我们日常使用的一种计数方式,除此之外,我们还会用到八进制数和十六进制数,但二进制是最适合计算机使用的计数方法,这是因为:
- 它可以使用两个稳定状态的物理器件来进行表示,例如高低电压。
- 0,1正好对应逻辑值 假、真。方便实现逻辑运算。
- 可以很方便地使用逻辑门电路实现算数运算。
文章内容概览:
一.演变历程
我们的计数形式进行了长期的演变,尽管象征计数意义的符号在不断的发生改变,淘汰一套又一套,但其核心思想使用不同的符号代表不同权重却始终未曾发生改变,只是为了适应多变与复杂的情景在不断的进行改进,使其使用更加便利。
-
例如我们先使用‘ I ’代表 1个 ,物品增多后发现 I 太多了不方便,便引入‘ 一 ’代表 5个 ,以此简化表示。
-
随着时间的推移,计数越来越庞大,为了便捷我们便又引入了更多的符号代表不同的权值。由于这种方式是基于“ 加法 ”思想的计数方法,随着数据规模增大,相应表示也不可避免的会越来越复杂。例如:DMCLXVI -> 1000+500+100+50+10+5+1 = 1666
-
为了解决上述问题,我们又发明了基于“ 乘法 ”思想的计数方法,仍旧是使用不同符合代表权重,但是不再是一个固定值,而是根据所在位置动态变化,也就是说符号所在的位置也反应权重。由此催生了我们现在最常使用的十进制数。符号权值 = 符号值 × 符号所处位置权值。
-
由此我们可以推断出其表达公式:
-
由于 0~9 一共只有十种符号,要表达加法的时候必须逢十进一,这也是为什么叫做十进制。
二.进位计数制
(1) 引入
基于“ 乘法 ”思想的计数方法,我们可以根据权值符号的数量不同得出不同的进制计数法。
我们使用基数表示每个数码位所用到的不同符号的个数,r 进制的基数为 r。 例如:十进制表示每个位置可以用到十种不同的符号。
由此可以得出二进制,八进制,十进制,十六进制:
二进制:0,1 ====> 每个位置两种表示符号
八进制:0,1,2,3,4,5,6,7 ====> 每个位置八种表示符号
十进制:0,1,2,3,4,5,6,7,8,9 ====> 每个位置十种表示符号
十六进制:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F ====> 每个位置十六种表示符号
其加法运算方式与十进制类似,同样是逢 r 进一。例如:
二进制 : 11 + 11 = 110 逢二进一
运算:0号位:1 + 1 = 2 = 2(进位) + 0 1号位:1 + 1 + 1(进的一) = 3 = 2(进位) + 1 2号位: 1(进的一)
八进制: 54 + 55 = 131 逢八进一
运算: 0号位:4 + 5 = 9 = 8(进位) + 1 1号位:5 + 5 + 1(进的一) = 11 = 8(进位) + 3 2号位:1(进的一)
十进制: 37 + 55 = 92 逢十进一
运算: 0号位:5 + 7 = 12 = 10(进一) + 2 1号位:5 + 3 + 1(进的一) = 9
十六进制:59 + 58 = B1 逢十六进一
运算: 0号位:8 + 9 = 17 = 16(进一) + 1 1号位:5 + 5 + 1(进的一) = 11 = B
注意:十六进制中 A -> 10 B -> 11 C -> 12 D -> 13 E -> 14 F -> 15
(2) 任意进制 <-> 十进制
(2.1) 任意进制 -> 十进制
我们可以得出任意进制转 r 进制公式,得到一套快速计算任意进制转为十进制的计算模板。记小数点左边第一位为0号位置:
十进制 = Σ(数码位值× 基数 ^ 位置) = Σ(数码位值× 位权)
(2.2) 十进制-> 任意进制
对于十进制转为其他任意进制我们也有一套通用的计算模板,但是对于整数部分和小数部分的计算方式却有所差异。
- 对于整数部分:r进制整数部分 = (十进制整数部分 % r) 不断取余数
例如:我们将十进制 75 转为二进制数,最后结果为:1001011,注意顺序!
十进制转为其他进制写法类似:
- 对于小数部分:r进制小数部分 = (十进制小数部分 × r ) 不断取出整数
例如:我们将十进制 0.3 转为二进制数,最后结果为:0.01001…可以发现无限循环了,也就是说我们无法获取到其二进制的精确表示,于此对于无限小数我们只需取到指定精度即可,注意顺序!
十进制转为其他进制写法类似:
(3) 二进制 <-> 八进制
(3.1) 二进制 -> 八进制
我们知道八进制的基数为 8,即每个位数可以表示八种不同情况。而二进制的基数为 2,即每个位数可以表示两种不同情况。假如我们把三个二进制位组合便可以得到2×2×2=8种不同情况,正好对应八进制每个数码位的八种情况。由此,我们可以得出二进制转八进制的计算方式:将二进制数每3位分为一组,每组转换成对应的八进制符号。
- 由此上述二进制 -> 八进制为:1111000010.011010 -> 1702.32
注意:当小数点左边位数不够3的整数倍向左补0,当小数点右边位数不够3的整数倍向右补0。
(3.2) 八进制 -> 二进制
八进制转为二进制相当于一个逆向的过程,即每位八进制数可以对应 3 位二进制数。我们只需一一将每位八进制数转为二进制形式即可获取到其所对应的二进制数。
例如上述我们将八进制数251.5转为二进制数,只需一一转为二进制数再进行组合即可。
(4) 二进制 <-> 十六进制
(4.1) 二进制 -> 十六进制
同理,我们知道十六进制的基数为16,即每个位数可以表示十六种不同情况。而二进制的基数为2,即每个位数可以表示两种不同情况。假如我们把四个二进制位组合便可以得到2×2×2×2=16种不同情况,正好对应十六进制每个数码位的十六种情况。由此,我们可以得出二进制转十六进制的计算方式:将二进制数每4位分为一组,每组转换成对应的十六进制符号。
- 由此上述二进制 -> 十六进制为:1111000010.011010 -> 3C2.68
注意:当小数点左边位数不够4的整数倍向左补0,当小数点右边位数不够4的整数倍向右补0。
(4.2)十六进制 -> 二进制
十六进制转为二进制相当于一个逆向的过程,即每位十六进制数可以对应 4 位二进制数。我们只需一一将每位十六进制数转为二进制形式即可获取到其所对应的二进制数。
十六进制:AE861 -> 二进制:1010 1110 1000 0110. 0001
一一进行转换,最后再按顺序组合起来。
A -> 1010
E -> 1110
8 -> 1000
6 -> 0110
1-> 0001
(5) 各种进制常见书写方式
对于不同的进制数我们两种常见的书写方式:
-
用括号()包围进制数,然后在括号右下角进行标识即可
-
直接在部分进制数后写上指定字母,例如:二级制B(binary), 十进制D(decimalism), 十六进制H(hexadecimal)或 0x,
三.真值、机器数
如果我们需要转换的十进制还带有正负号,此时我们就需要再增加一个符号位用来标识正负号,例如用0标识正,1标识负。
例如:
15 -> 1111 + 15 -> 0 1111
8 -> 1000 - 8 -> 1 1000
其中 +15 和 -8 为真值,而 0 1111 和 1 1000 为机器数
我们规定:
-
真值:符合人类习惯的数字。
-
机器数:数字实际存到机器里的形式,正负号需要被“数字化”。
相关文章:

【计算机组成原理】数据的表示和运算·进位计数制
🚩 本文已收录至专栏:计算机基础 我们可以通过显示屏看到各种形式的数据信息,但数据是如何在计算机中表示呢?运算器又是如何实现数据的算数、逻辑运算? 十进制数是最适合我们日常使用的一种计数方式,除此之…...
C++ Primer第五版_第十四章习题答案(21~30)
文章目录 练习14.21练习14.22头文件CPP文件 练习14.23头文件CPP文件 练习14.24头文件CPP文件 练习14.25练习14.26练习14.27练习14.28练习14.29练习14.30 练习14.21 编写 Sales_data 类的 和 运算符,使得 执行实际的加法操作而 调用。相比14.3节和14.4节对这两个运…...
服务器性能调优
硬件 如果是硬件瓶颈就换硬件 (包括CPU、内存、网卡) 软件 如果是方案架构设计有问题就换方案,比如mysql、redis方案有问题 建议先 top 看下软件瓶颈在哪,CPU、内存、网络(netstat),哪个进程占…...

带你深入学习k8s--(三) pod 管理
目录 一、简介 1、什么是pod 2、为什么要有pod 二、pod的分类 0、pod常用命令命令 1、准备镜像 2、自主式pod 3、控制器创建pod 4、扩容pod数量 5、通过service暴露pod(负载均衡,自动发起) 6、更新应用版本 三、编写yaml文件 四、Pod生命周期…...

前端系列11集-ES6 知识总结
ES Module 优点 静态分析 浏览器和 Node 都支持 浏览器的新 API 能用模块格式提供 不再需要对象作为命名空间 export 用于规定模块的对外接口 输出的接口与其对应的值是动态绑定关系可以取到模块内部实时的值 import 用于输入其他模块提供的功能 具有提升效果,会提升…...

连接分析工具箱 | 利用CATO进行结构和功能连接重建
导读 本研究描述了一个连接分析工具箱(CATO),用于基于扩散加权成像(DWI)和静息态功能磁共振成像(rs-fMRI)数据来重建大脑结构和功能连接。CATO是一个多模态软件包,使研究人员能够运行从MRI数据到结构和功能连接组图的端到端重建,定制其分析并…...

【目标检测论文阅读笔记】Detection of plane in remote sensing images using super-resolution
Abstract 由于大量的小目标、实例级噪声和云遮挡等因素,遥感图像的目标检测精度低,漏检率或误检率高。本文提出了一种新的基于SRGAN和YOLOV3的目标检测模型,称为SR-YOLO。解决了SRGAN网络 对超参数的敏感性和模态崩溃问题。同时,Y…...

外卖app开发流程全解析
外卖app开发是现代餐饮业的一个必备部分。在这个数字化时代,人们更愿意使用手机应用程序来订购食品。因此,为了满足客户需求,餐饮企业需要开发自己的外卖app。 第一步:确定目标受众 在开始外卖app的开发之前,需要确定…...

BUUCTF jarvisoj_level0
小白垃圾做题笔记而已,不建议阅读。。。 这道题感觉主要就是64位程序ebp8 题目中给出了shellcode 我们直接将返回地址覆盖就好。 在main函数中调用了vulnerable_function()函数。 vulnerable函数是一个漏洞函数:(存在缓溢出),我们只需要将…...

网络安全之入侵检测
目录 网络安全之入侵检测 入侵检测经典理论 经典检测模型 入侵检测作用与原理 意义 异常检测模型(Anomaly Detection) 误用检测模型(Misuse Detection) 经典特征案例 编辑自定义签名 编辑 签名检查过程 检测生命周期…...
元数据管理
1、业务元数据 描述 ”数据”背后的业务含义主题定义:每段 ETL、表背后的归属业务主题。业务描述:每段代码实现的具体业务逻辑。标准指标:类似于 BI 中的语义层、数仓中的一致性事实;将分析中的指标进行规范化。标准维度…...

C# WebService的开发以及客户端调用
目录 1、WebService简介 1.1 什么是XML? 1.2 什么是Soap? 1.3 什么是WSDL? 2、WebService与WebApi的区别与优缺点 2.1 WebService与WebApi的区别: 2.2 WebService的优缺点: 2.3 WebApi的优缺点: 3…...
有符号数和无符号数左移和右移
主要是有符号数的左移。 有的说不管符号位,直接左移,所以可以一会正数一会复数 https://bbs.csdn.net/topics/391075092 有的说符号位不动,其他来左移 不明白了。。。。 https://blog.csdn.net/hnjzsyjyj/article/details/119721014 https://…...

Netty小白入门教程
一、概述 1.1 概念 Netty是一个异步的基于事件驱动(即多路复用技术)的网络应用框架,用于快速开发可维护、高性能的网络服务器和客户端。 1.2 地位 Netty在Java网络应用框架中的地位就好比,Spring框架在JavaEE开发中的地位。 以下的框架都使用了Nett…...

【逻辑位移和算数位移】
<< 运算符 && >> 运算符 正数位移 当 x>>n 中 x 为正数时,会将x的所有位右移x位,同时左边高位补0 显而易见,运算结束后,值为1 。 可知右移n位,结果就是 x / 2^n:7 / 2 ^2 1;…...

Blender3.5 边的操作
目录 1. 边操作1.1 边的细分 Subdivide1.2 边的滑移 Edge Slide1.3 边的删除1.4 边的溶解 Dissolve1.5 边线倒角 Bevel1.6 循环边 Loop Edges1.7 并排边 Ring Edges1.8 桥接循环边 1. 边操作 1.1 边的细分 Subdivide 在边选择模式,选中一条边,右键&…...
Java与Python、Node.js在人工智能和区块链应用程序开发中的比较
背景 Java、Python和Node.js都是常用的编程语言,它们在不同领域都有广泛的应用。在人工智能和区块链应用程序开发中,这三种语言都具有各自的优势和劣势。 Java的优势 Java在企业级应用中应用广泛,这得益于其跨平台性、安全性和稳定性等特点。在人工智能和区块链应用程序开…...

【计算机是怎么跑起来的】基础:计算机三大原则
【计算机是怎么跑起来的】基础:计算机三大原则 计算机的三个根本性基础1.计算机是执行输入,运算,输出的机器输入,运算,输出 2. 软件是指令和数据的集合指令数据 3. 计算机的处理方式有时与人们的思维习惯不同对计算机来…...

NXP公司LPC21XX+PID实现稳定温度控制
本例使用的是LPC21XX系列芯片提供的PWM功能实现稳定的温度控制。首先我们获得当前环境温度之后,再用设定的温度与当前温度相减,通过PID算法计算出当前输出脉宽,并将其输出到L298N模块中,使加热丝发热,形成闭环…...
【CE实战-生化危机4重置版】实现角色瞬移、飞翔
▒ 目录 ▒ 🛫 导读需求开发环境1️⃣ CE扫描内存,定位坐标地址(加密后的地址)2️⃣ 硬件写入断点,定位真实坐标地址内存写入断点,定位到访问地址分析代码...

.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例
使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...

centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...

佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...

实战三:开发网页端界面完成黑白视频转为彩色视频
一、需求描述 设计一个简单的视频上色应用,用户可以通过网页界面上传黑白视频,系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观,不需要了解技术细节。 效果图 二、实现思路 总体思路: 用户通过Gradio界面上…...
LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用
中达瑞和自2005年成立以来,一直在光谱成像领域深度钻研和发展,始终致力于研发高性能、高可靠性的光谱成像相机,为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...