数电基础 - 数制,码制

目录

一. 简介

数制

码制

二. 进制

十进制(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)}; 
endmodule

timescale 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 begin
        in = 4'd0;
        #20
        in = 4'd1;
        #20
        in = 4'd2;
        #20
        in = 4'd3;
        #20
        in = 4'd4;
        #20
        in = 4'd5;
        #20
        in = 4'd6;
        #20
        in = 4'd7;
        #20
        in = 4'd8;
        #20
        in = 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://www.mfbz.cn/a/788899.html

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

相关文章

WPF 初识依赖属性

依赖属性的意义和作用 核心模块内存共享,节省空间数据绑定、样式、模板、动画。。。。如果没有依赖属性,这个框架就是一个控件框架 相当于Winform 依赖属性的基本定义 基本过程:声明、注册、包装 在需要写依赖属性的类中,继承…

【EI稳定检索】第五届大数据、人工智能与软件工程国际研讨会(ICBASE 2024)

>>>【独立出版&#xff0c;Ei稳定检索】<<< 第五届大数据、人工智能与软件工程国际研讨会&#xff08;ICBASE 2024&#xff09; 2024年09月20-22日 | 中国温州 一轮截稿时间&#xff1a;2024年7月8日 二轮截稿时间&#xff1a;2024年8月5日 大会简介 *会议…

深度学习之梯度消失

在深度学习中&#xff0c;梯度消失是指在反向传播过程中&#xff0c;随着网络层数增加或者在使用特定类型的激活函数&#xff08;如sigmoid函数&#xff09;时&#xff0c;梯度逐渐变小并最终趋近于零的现象。这种现象导致在更新参数时&#xff0c;底层网络的权重几乎不会得到有…

RSRS研报复现——年化21.5%,含RSRS标准分,右偏标准分的Backtrader指标计算(代码+数据)

原创文章第583篇&#xff0c;专注“AI量化投资、世界运行的规律、个人成长与财富自由"。 继续Backtrader&#xff0c;今天讲讲指标扩展。 作为规则型的量化框架&#xff0c;指标是非常重要的元素&#xff0c;它是策略的基础。 我们来扩展一个经典的指标&#xff0c;RSR…

解决:Flink向kafka写数据使用Producer精准一次(EXACTLY_ONCE)异常

在使用flink向kafka写入数据报错&#xff1a;Caused by: org.apache.kafka.common.KafkaException: Unexpected error in InitProducerIdResponse; The transaction timeout is larger than the maximum value allowed by the broker (as configured by transaction.max.timeou…

【云岚到家】-day05-2-预约下单-系统开发

【云岚到家】-day05-2-预约下单-系统开发 1 预约下单系统开发1.1 订单号生成规则1.1.1 常见的订单号生成规则1.1.2 本项目订单号生成规则1.1.3 代码实现 1.2 下单接口实现1.2.1 Mapper实现1.2.2 Service实现1.2.3 Controller1.2.4 测试 1.3 下单代码优化1.3.1 事务方法存在远程…

自动化一些操作

下拉选择框 from selenium import webdriver from time import sleep # 导包 from selenium.webdriver.support.select import Select driver webdriver.Edge() driver.get(r"D:\WORK\ww\web自动化_day01_课件笔记资料代码\web自动化_day01_课件笔记资料代码\02_其他资料…

Collection接口及遍历集合的方式Iterator接口、增强for循环的介绍和使用

Collection接口 概述&#xff1a;单列集合的顶级接口格式&#xff1a;其中泛型决定了集合中能存储什么类型的数据&#xff0c;可以统一元素类型&#xff0c;泛型中只能写引用数据类型&#xff0c;如果不写&#xff0c;默认Object类型。等号前面的泛型必须写&#xff0c;等号后…

收银系统源代码-收银端UI风格

智慧新零售收银系统是一套线下线上一体化收银系统&#xff0c;给商户提供含线下收银称重、线上商城、精细化会员管理、ERP进销存、丰富营销活动、移动店务助手等一体化的解决方案。 如Windows版收银&#xff08;exe安装包&#xff09;、安卓版收银&#xff08;apk安装包&#…

PID控制与模糊PID控制的比较

一、PID控制器的设计 1.PID控制原理图&#xff1a; PID控制其结构框图如下图所示&#xff1a; 图1&#xff1a;PID控制器结构框图 2.PID控制器传递函数的一般表达式 PID控制器传递函数的一般表达形式为&#xff1a; 其中kp为比例增益&#xff1b;ki为积分增益&#xff1b;k…

学习笔记——动态路由——IS-IS中间系统到中间系统(IS-IS工作过程)

六、IS-IS工作过程 1、第一步&#xff1a;建立邻居关系 IS-IS网络中所有路由器之间实现通信&#xff0c;主要通过以下几个步骤&#xff1a; (1)邻居关系建立&#xff1a; 邻居关系建立主要是通过HELLO包交互并协商各种参数&#xff0c;包括链路类型(level-1/level-2)&#…

详细分析Spring中的@Configuration注解基本知识(附Demo)

目录 前言1. 基本知识2. 详细分析3. Demo3.1 简单Bean配置3.2 属性配置3.3 多条件配置 4. 实战拓展 前言 Java的基本知识推荐阅读&#xff1a; java框架 零基础从入门到精通的学习路线 附开源项目面经等&#xff08;超全&#xff09;Spring框架从入门到学精&#xff08;全&am…

k8s集群如kubeadm init和kube-flannel.yam问题

查看k8s中角色内容kubectl get all (显示pod和server以及delment) 删除应用资源选择删除先删除部署查看部署和pod没了服务还在&#xff0c;但资源和功能以及删除&#xff0c;删除服务kubectl delete 服务名&#xff08;部署名&#xff09;&#xff0c;get pods 获取默认空间的容…

毛细管计算软件

思科普毛细管计算软件 输入部分&#xff1a; 一是制冷剂的选取&#xff0c;含常用制冷剂R134A R600A R407C等 A输入热负荷 B蒸发温度 C冷凝温度 D回气温度 毛细管的选项&#xff0c;根据不同内径对应不同长度的毛细管

详细分析@FunctionalInterface的基本知识(附Demo)

目录 前言1. 基本知识2. Demo 前言 Java的基本知识推荐阅读&#xff1a; java框架 零基础从入门到精通的学习路线 附开源项目面经等&#xff08;超全&#xff09;Spring框架从入门到学精&#xff08;全&#xff09; 1. 基本知识 FunctionalInterface 是 Java 8 引入的一个注…

apache:the requested operation has failed使用httpd -t

Apache24\bin cmd 回车 httpd -t 因为我重新压缩了&#xff0c;记住&#xff0c;重新压缩要使用原路径&#xff0c; 因为你安装的 时候使用的是原路径 还是不行就改个端口&#xff0c;切记修改配置文件httpd.conf先把Tomcat停了 Define SRVROOT "F:\Apache\Apache24&q…

从生物学到机械:人眼如何为机器人视觉系统提供无尽灵感?

人眼激发了相机机制的发展&#xff0c;该机制改善了机器人对周围世界的观察和反应方式。 该摄像头系统由马里兰大学&#xff08;UMD&#xff09;计算机科学家领导的团队开发&#xff0c;模仿人眼用于保持清晰稳定的视力的不自主运动。 该团队对相机的原型设计和测试称为…

警惕!焦虑过度的这些症状正在悄悄侵蚀你的生活!

在快节奏的现代社会中&#xff0c;焦虑已成为许多人生活的一部分。适度的焦虑可以激发我们的斗志&#xff0c;推动我们前进。然而&#xff0c;当焦虑过度时&#xff0c;它可能会变成一把双刃剑&#xff0c;对我们的身心健康造成严重威胁。本文将探讨焦虑过度的表现&#xff0c;…

机器视觉/自然语言/生成式人工智能综合应用实验平台-实训平台-教学平台

AIGC是人工智能1.0时代进入2.0时代的重要标志&#xff0c;MIT 科技评论也将Al合成数据列为2022年十大突破性技术之一&#xff0c;甚至将生成性Al(Generative Al) 称为是AI领域过去十年最具前景的进展。同时&#xff0c;AIGC领域岗位需求数量暴涨。高校方面在人工智能专业与机器…

文献笔记|综述|When Large Language Model Meets Optimization

When Large Language Model Meets Optimization 题目&#xff1a;当大型语言模型遇到优化时 作者&#xff1a;Sen Huang , Kaixiang Yang , Sheng Qi and Rui Wang 来源&#xff1a;arXiv 单位&#xff1a;华南理工大学 文章目录 When Large Language Model Meets Optimization…