数电基础 - 数制,码制

目录

一. 简介

数制

码制

二. 进制

十进制(Decimal):

二进制(Binary):

八进制(Octal):

十六进制(Hexadecimal):

三. 进制的转换

十进制转二进制

十进制转八进制

十进制转十六进制

二进制转十进制

八进制转十进制

十六进制转十进制

二进制转八进制

二进制转十六进制

八进制转二进制

十六进制转二进制

四. 反码 补码

反码:

补码:

五.  BCD码和格雷码

六. ASCII码



一. 简介

数制

数制是用于计数的方法,常见的数制包括十进制、二进制、八进制和十六进制。

十进制是我们日常生活中最常用的数制,它由 0、1、2、3、4、5、6、7、8、9 这十个数字组成,遵循“逢十进一”的原则。

二进制则是数字电路中最为重要的数制,仅由 0 和 1 两个数字组成,遵循“逢二进一”的规则。由于计算机的硬件基础是由大量的逻辑电路构成,这些逻辑电路通常只有两种稳定的状态,正好可以用二进制的 0 和 1 来表示。

八进制由 0、1、2、3、4、5、6、7 这八个数字组成,遵循“逢八进一”。

十六进制由 0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F 这十六个数字和字母组成,遵循“逢十六进一”。

码制

码制是指用代码来表示特定信息的方法。常见的码制有 BCD 码(二-十进制码)、格雷码等。

BCD 码是用四位二进制数来表示一位十进制数。

格雷码的特点是相邻的两个编码之间只有一位发生变化,这在数字电路中可以减少错误的发生。

二. 进制

十进制(Decimal)


十进制是我们日常生活中最常用的数制。
它由 0、1、2、3、4、5、6、7、8、9 这十个数字组成。
计数规则是“逢十进一”。例如,当个位数字达到 9 后,再增加 1 就会向十位进 1,变成 10 。
十进制数的位权是以 10 为底的幂。例如,数字 123 中,3 的位权是 10^0 = 1,2 的位权是 10^1 = 10,1 的位权是 10^2 = 100 。

二进制(Binary)


二进制是数字电路和计算机系统中最基本的数制。
它仅由 0 和 1 两个数字组成,计数规则是“逢二进一”。例如,当个位数字为 1 时,再增加 1 就会向十位进 1,变成 10 。
二进制数的位权是以 2 为底的幂。例如,二进制数 101 中,1 的位权是 2^0 = 1,0 的位权是 2^1 = 2,1 的位权是 2^2 = 4 。
二进制常用于表示计算机中的数据和指令,因为计算机的硬件电路状态只有两种,容易用二进制表示。

八进制(Octal)


八进制由 0、1、2、3、4、5、6、7 这八个数字组成,计数规则是“逢八进一”。例如,当数字达到 7 后,再增加 1 就会向高位进 1,变成 10 。
八进制数的位权是以 8 为底的幂。例如,八进制数 25 中,5 的位权是 8^0 = 1,2 的位权是 8^1 = 8 。

十六进制(Hexadecimal)


十六进制由 0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F 这十六个数字和字母组成,其中 A 代表 10,B 代表 11,C 代表 12,D 代表 13,E 代表 14,F 代表 15 。计数规则是“逢十六进一”。例如,当数字达到 F 后,再增加 1 就会向高位进 1,变成 10 。
十六进制数的位权是以 16 为底的幂。例如,十六进制数 3A 中,A 的位权是 16^0 = 1,3 的位权是 16^1 = 16 。
十六进制常用于表示计算机中的内存地址和数据,因为它比二进制更简洁,又比八进制能表示更多的信息。

三. 进制的转换

十进制转二进制

方法:除 2 取余法。将十进制数除以 2,取余数,然后将商继续除以 2,直到商为 0。再将所有的余数从右到左排列,得到的就是二进制数。

技巧:可以通过记住 2 的幂次方对应的数值,快速判断二进制位的值。

例如:十进制 13 转二进制
13÷2 = 6 余 1
6÷2 = 3 余 0
3÷2 = 1 余 1
1÷2 = 0 余 1
从右到左排列余数得到 1101

十进制转八进制

方法:除 8 取余法。将十进制数除以 8,取余数,然后将商继续除以 8,直到商为 0。再将所有的余数从右到左排列,得到的就是八进制数。

技巧:可以先将十进制转二进制,然后从右往左每三位一组,转换为八进制。

例如:十进制 57 转八进制
57÷8 = 7 余 1
7÷8 = 0 余 7
从右到左排列余数得到 71

十进制转十六进制

方法:除 16 取余法。将十进制数除以 16,取余数,然后将商继续除以 16,直到商为 0。再将所有的余数从右到左排列,得到的就是十六进制数。如果余数大于 9,则用 A - F 表示。

技巧:可以先将十进制转二进制,然后从右往左每四位一组,转换为十六进制。

例如:十进制 255 转十六进制
255÷16 = 15 余 15(F)
15÷16 = 0 余 15(F)
从右到左排列余数得到 FF

二进制转十进制

方法:位权相加法。将二进制数的每一位乘以 2 的相应幂次,然后将结果相加。

例如:二进制 1011 转十进制
1×2³ + 0×2² + 1×2¹ + 1×2⁰ = 8 + 0 + 2 + 1 = 11

八进制转十进制

方法:位权相加法。将八进制数的每一位乘以 8 的相应幂次,然后将结果相加。

例如:八进制 73 转十进制
7×8¹ + 3×8⁰ = 56 + 3 = 59

十六进制转十进制

方法:位权相加法。将十六进制数的每一位乘以 16 的相应幂次,然后将结果相加。

例如:十六进制 AF 转十进制
A×16¹ + F×16⁰ = 10×16 + 15×1 = 175

二进制转八进制

方法:从右往左每三位一组,不足三位在左边补 0,然后将每组转换为对应的八进制数字。

例如:二进制 10101 转八进制
010 101 (分组)
2 5 (转换)
结果为 25

二进制转十六进制

方法:从右往左每四位一组,不足四位在左边补 0,然后将每组转换为对应的十六进制数字。

例如:二进制 10101011 转十六进制
1010 1011 (分组)
A B (转换)
结果为 AB

八进制转二进制

方法:将每一位八进制数字转换为对应的三位二进制数字。

例如:八进制 35 转二进制
3 5
011 101
结果为 011101

十六进制转二进制

方法:将每一位十六进制数字转换为对应的四位二进制数字。

例如:十六进制 2F 转二进制
2 F
0010 1111
结果为 00101111

四. 反码 补码

在计算机中,数字通常以二进制形式存储和处理,反码和补码是表示有符号数(正数和负数)的两种编码方式。

反码

对于一个二进制数,正数的反码与原码相同;负数的反码是对原码的数值位逐位取反(0 变为 1,1 变为 0),符号位不变。

例如,对于 8 位二进制数:

  • 正数 5 的原码是 00000101,反码也是 00000101。
  • 负数 -5 的原码是 10000101,反码是 11111010。

补码

正数的补码与原码相同;负数的补码是其反码加 1。

例如,对于 8 位二进制数:

  • 正数 5 的原码是 00000101,补码也是 00000101。
  • 负数 -5 的原码是 10000101,反码是 11111010,补码是 11111011。

使用补码的主要优点是可以方便地进行加法运算,无需区分正负号,并且可以将减法运算转换为加法运算,简化了计算机的运算逻辑。

五.  BCD码和格雷码

BCD 码(Binary-Coded Decimal)是一种用二进制编码表示十进制数字的编码方式。在 BCD 码中,每四位二进制数表示一个十进制数字(0-9)。

常见的 BCD 码有权码和无权码两类。有权 BCD 码中,各位的权值是固定的,例如 8421 码、5421 码、2421 码等。以 8421 码为例,其从高到低各位二进制位对应的权值分别为 8、4、2、1,将各二进制位与权值相乘,并将乘积相加就可得到相应的十进制数。

无权码则没有固定的权值,常用的有余 3 码等。余 3 码是在 8421 码的基础上,把每个数的代码加上 0011(对应十进制数 3)后得到的。

格雷码(Gray Code)是一种无权码,其特点是相邻两个代码之间仅有一位不同,其余各位均相同。这种特性使得在数字系统中进行数字转换时可以减少误码传输的可能性,因为相邻编码的变化只有一位,降低了由于多个位同时变化可能导致的错误。

例如,十进制数 0-9 的 8421 码、典型格雷码和修改格雷码的对应关系如下:

十进制8421 码典型格雷码修改格雷码
0000000000010
1000100010011
2001000110110
3001100100111
4010001101110
5010101111111
6011001011011
7011101001010
8100011001000
9100111011001

格雷码有多种类型,如典型格雷码、修改格雷码等。它们之间可以通过一定的运算相互转换。例如,典型格雷码与修改格雷码的关系是余 3,即某数的修改格雷码可通过该数加 3 后得到的数值的格雷码来获得。

在实际应用中,BCD 码常用于需要将十进制数直接转换为二进制表示的场合,例如数字时钟、计数器等。格雷码则常用于减少数字传输或转换过程中的错误,例如在编码器、磁盘驱动器等设备中。

十进制数转换为典型格雷码的方法如下(以十进制数 7 为例):首先直接将十进制数的首位作为格雷码的首位,然后将该位与下一位进行异或运算得到格雷码的第三位,接着是第三位与第二位异或得到第四位,最后第二位与第一位异或得到第二位。对于 7(8421 码为 0111),转换过程为:首位 0 作为格雷码的首位,0 异或 1 得到第三位为 1,第三位 1 和第二位 1 异或得到第四位为 0,第二位 1 与首位 0 异或得到第二位为 1,所以 7 的典型格雷码为 0100。

典型格雷码转换为十进制数的方法可以通过依次将格雷码右移并与自身进行异或运算,直到格雷码右移到 0,最终得到的结果就是对应的十进制数。

而 8421 码转换为修改格雷码的 Verilog 代码及仿真代码如下(以 4 位二进制为例):

module bcd_2_gray(in,out);parameter n = 4;input (n-1:0) in;output (n-1:0) out;wire (n-1:0) tmp;assign tmp = in + 2'd3; assign out = {tmp(n-1),tmp(n-1:1)^tmp(n-2:0)}; 
endmoduletimescale 1ns/1ps
module bcd_2_gray_tb();parameter n = 4;reg (n-1:0) in;wire (n-1:0) out;bcd_2_gray inst(.in(in),.out(out));initial beginin = 4'd0;#20in = 4'd1;#20in = 4'd2;#20in = 4'd3;#20in = 4'd4;#20in = 4'd5;#20in = 4'd6;#20in = 4'd7;#20in = 4'd8;#20in = 4'd9;#20$stop;end
endmodule

六. ASCII码

ASCII 码(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统。

它用 7 位或 8 位二进制数来表示字符,总共可以表示 128 个或 256 个不同的字符。包括常见的英文字母(大写和小写)、数字、标点符号、控制字符(如换行、回车等)等。

例如,数字 0 的 ASCII 码是 48(十进制),大写字母 A 的 ASCII 码是 65,小写字母 a 的 ASCII 码是 97 等。

ASCII 码在计算机通信和数据存储中被广泛使用,使得不同的计算机系统能够以统一的方式处理和交换文本信息。

在许多编程语言中,可以通过特定的函数或操作来获取字符的 ASCII 码值,也可以通过 ASCII 码值来获取对应的字符。

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Go语言---正则表达式

正则表达式是一种进行模式匹配和文本操纵的复杂而又强大的工具。虽然正则表达式比纯粹的文本匹配效率低,但是它却更灵活。按照它的语法规则,只需构造出的匹配模式就能够从原始文本中筛选出几乎任何你想要得到的字符组合。go语言的通过regexp标准包来实现…

外卖商城平台小程序的设计

管理员账户功能包括:系统首页,个人中心,用户管理,商家管理,骑手管理,商品类型管理,商品信息管理,订单信息管理 微信端账号功能包括:系统首页,商品信息&#…

理解负载组电路-EAK负载电路解释

负载组具有安全、可靠、操作方便、使用寿命长等特点。了解控制、冷却和负载元件电路的布局和功能对于理解负载组的运行、为应用选择负载组和维护负载组非常重要。以下各节将描述这些电路。 EAK负荷组运行概述 负载组接收来自电源的电力,将其转换为热量,…

Spring Cloud Alibaba -- 分布式定时任务解决方案(轻量级、快速构建)(ShedLock 、@SchedulerLock )

文章目录 一、 ShedLock简介二、 SchedulerLock三、基于Mysql方式使用步骤1.建表2.引入依赖3.Mysql连接配置4.ScheduledLock配置5.启动类配置6.创建定时任务7.启动多个项目服务进行测试8.SchedulerLock注解说明 四、使用注意事项 一、 ShedLock简介 ShedLock 是一个用于 Java …

58、基于径向基神经网络的曲线拟合(matlab)

1、基于径向基神经网络的曲线拟合简介及原理 1)原理简介 基于径向基神经网络(Radial Basis Function Neural Network, RBFNN)的曲线拟合是一种常用的非线性拟合方法,通过在输入空间中使用径向基函数对数据进行处理,实…

【机器学习】使用决策树分类器预测汽车安全性的研究与分析

文章目录 一、决策树算法简介决策树的结构分类和回归树 (CART)决策树算法术语决策树算法直觉 二、属性选择度量信息增益熵 基尼指数计算分割基尼指数的步骤 三、决策树算法中的过度拟合避免过度拟合的方法 四、导入库和数据可视化探索性数据分析重命名列名查看数据集的总结信息…

仪表板展示|DataEase看中国:2023年中国新能源汽车经济运行情况分析

背景介绍 随着政府机构、企业和个人对环保和可持续发展的高度关注,“新能源汽车”在全球范围内成为了一个热门话题。新能源汽车是指使用非传统燃料(如电能、氢能等)作为动力源的汽车。 在中国市场,新能源汽车产业蓬勃发展&#…

Python29 Tensorflow的基本知识和使用

1. TensorFlow TensorFlow 是一个开源的机器学习框架,由 Google Brain 团队开发。它用于数据流图的计算,尤其擅长深度学习任务。在 TensorFlow 中,数据流图(Data Flow Graph)是其核心概念之一,它定义了计算…

【QT】QComboBox允许输入查询,且不区分大小写

目录 0.简介 1.环境 2.详细代码 3.参考 0.简介 项目需求,原本有一个下拉框,但是条目太多,不好搜索,所以用户要求可以输入查找 修改前 : 修改后: 1.环境 windows11 vs-code qt5.12 2.详细代码 QComboB…

北斗防爆手持终端在化工厂的安全性能分析

北斗防爆手持终端在化工厂中的应用显著提升了安全性能,其卓越的防爆设计、高精度定位与监控功能、实时通信能力以及多功能集成特性,共同构筑了化工厂安全生产的坚实防线,确保了巡检人员与设备在复杂环境下的安全作业与高效管理。 北斗防爆手持…

触摸屏虚拟键盘组件 jQuery Virtual Keyboard使用 自定义键盘

如何在触摸设备上为输入域添加虚拟键盘? 一个插件可以解决这个问题,关键还支持高度自定义(git地址): GitHub - Mottie/Keyboard: Virtual Keyboard using jQuery ~ 官网地址:Virtual Keyboard 使用步骤&…

免费下载工具 -- Free Download Manager(FDM) v6.24.0.5818

软件简介 Free Download Manager (FDM) 是一款免费的功能强大的下载管理软件,适用于多种操作系统,包括 Windows、macOS、Android 和 Linux。这款软件的特色在于它快速、安全且高效的下载能力。它可以下载各种热门网站的影片,支持 HTTP/HTTP…

人工智能算法工程师(中级)课程1-Opencv视觉处理之基本操作与代码详解

大家好,我是微学AI,今天给大家介绍一下人工智能算法工程师(中级)课程1-Opencv视觉处理之基本操作与代码详解。OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库。它提供了各种视觉处理函数&am…

电脑虚拟摄像头怎么使用?电脑摄像头可以被虚拟摄像头替代吗?8款推荐!

在数字化日益普及的今天,视频通话和在线会议已成为我们生活和工作中不可或缺的一部分。然而,当我们的电脑没有配备摄像头,或摄像头出现故障时,我们可能会面临一些不便。这时,电脑虚拟摄像头便成为了一个实用的解决方案…

摸鱼大数据——Spark SQL——Spark on Hive部署

1、集成原理 HiveServer2的主要作用: 接收SQL语句,进行语法检查;解析SQL语句;优化;将SQL转变成MapReduce程序,提交到Yarn集群上运行​SparkSQL与Hive集成,实际上是替换掉HiveServer2。是SparkSQL中的HiveSe…

《AIGC:智能创作时代》:AI创作革命来临,你准备好了吗?

想象一下,你正在欣赏一幅精美的画作,惊叹于其细腻的笔触和独特的构图。然而,当你得知这幅作品是由人工智能创作时,你会作何感想?这不再是科幻小说中的场景,而是我们正在经历的现实。 在这个AI技术飞速发展的…

AWS 云安全性:检测 SSH 暴力攻击

由于开源、低成本、可靠性和灵活性等优势,云基础设施主要由基于linux的机器主导,然而,它们也不能幸免于黑客的攻击,从而影响云的安全性。攻击Linux机器最流行的方法之一是通过SSH通道。 什么是 SSH 安全外壳协议(Sec…

Elasticsearch基础(四):Elasticsearch语法与案例介绍

文章目录 Elasticsearch语法与案例介绍 一、Restful API 二、查询语法 1、ES分词器 2、ES查询 2.1、match 2.2、match_phrase 2.3、multi_match 2.4、term 2.5、terms 2.6、fuzzy 2.7、range 2.8、bool Elasticsearch语法与案例介绍 一、Restful API Elastics…

上海亚商投顾:沪指大涨超1% 两市成交额重回7000亿

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 三大指数昨日放量反弹,午后集体涨超1%,深成指一度涨逾2%。消费电子板块全线爆发。 板…

基于vue的可视化大屏2

这个可视化大屏分为四个部分 一个引入代码&#xff0c;引入全局 index.vue. 左边代码centerleft.vue 右边代码centerright.vue 中间代码center.vue 主代码&#xff1a; 这是一段 Vue 框架的代码。 在 <template> 部分&#xff1a; 定义了一个根 div 元素。其中包含一…