数制与码制

news2024/11/26 23:29:36

用0和1可以组成二进制数表示是数量的大小,也可以表示对立的两种逻辑状态。数字系统中常用二进制数来表示数值。

       在微处理器、计算机和数据通信中,采用十六进制。任意一种格式的数可以在十六、二和十进制之间相互转换。

       二进制数有加、减、乘、除四种运算,加法是各种运算的基础。特殊二进制码常用来表示10进制数。如8421码、2421码、5421码、余三码、余三码循环码、格雷码、ASCII等。

数制

我们常见的数字是十进制,而计算机中,常常会接触到二进制、八进制、十六进制,而这三种进制的转换较简单,若是进行除以上进制外的其他进制的表达,一般先转换为十进制数,再根据计算进制数的计算原理计算所需的进制。

常见进制的表示

(注意下标或前缀)

二进制的优点:

(1)易于电路表达— 0、1两个值,可以用管子的导通或截止,灯泡的亮或灭、继电器触点的闭合或断开来表示。

(2)二进制数字装置所用元件少,电路简单、可靠 。

(3)基本运算规则简单, 运算操作方便。

十六进制的优点:

    1)与二进制之间的转换容易;

2)计数容量较其它进制都大。假如同样采用四位数码。

3)书写简洁。

原码、反码、补码

补码或反码的最高位为符号位,正数为0,负数为1。

当二进制数为正数时,其补码、反码与原码相同。

当二进制数为负数时,将原码的数值位逐位求反,然后在最低位加1得到补码。

 4位二进制原码、反码、补码对照表

 n位带符号二进制数的原码、反码和补码的数值范围 :

 

二进制数的算数运算

对无符号数,则机器字长的所有位都参与表示数值。

l  对有符号数,则要留出机器字长的最高位作为符号位,其余表示数值。

无符号二进制数的算术运算

无符号二进制的加法规则: 0+0=0,0+1=1,1+1=10。

计算两个二进制数1010和0101的和

 

无符号二进制数的减法规则:0-0=0, 1-1=0,1-0=1   0-1=11

计算两个二进制数1010和0101的差

 

 

无符号二进制的乘法规则:0×0=0,0×1=0,1×0=0 ,1×1=1 。

计算两个二进制数1010和0011的积。

 

无符号二进制的除法规则:0÷1=0,1÷1=1 。

计算两个二进制数1010和0011的商

 

 

有符号二进制数的算术运算

有符号的二进制数表示:二进制数的最高位表示符号位,且用0表示正数,用1表示负数。其余部分用原码的形式表示数值位。

二进制补码的减法运算:减法运算的原理:减去一个正数相当于加上一个负数A-B=A+(-B),对(-B)求补码,然后进行加法运算。

如:试用4位二进制补码计算5-2。

(注意符号)

溢出的判断

注意溢出与进位及补码运算中的进位丢失间的区别:

   (1) 进位和借位是指无符号数运算结果的最高位向更高位进位或借位,通常多位二进制数将其拆成二部分或三部分或更多部分进行运算时,数的低位部分均为无符号数,只有最高部分数才为符号数。由此可知:进位主要用于无符号数的运算,这与溢出主要用于符号数的运算是有区别的。

   (2)溢出与补码运算中的进位丢失也应加以区别。

例,两负数相加;-50-5=-55

 

       两负数相加,结果为负数正确。这里虽然出现了补码运算中的进位,但由于和数并没有超出8位二进制数-128~127的范围,因此无溢出,应将进位位丢失,最高位作为符号位

判别溢出与进位的方法:设符号位向进位位的进位为CY,数值部分向符号位的进位为CS ,则溢出:

 O=1,有溢出; O=0,无溢出;

 

码制

BCD码

二—十进制码 (数值编码),(BCD码—Binary Code Decimal),用4位二进制数来表示一位十进制数中的0~9十个数码。从4 位二进制数16种代码中,选择10种来表示0~9个数码的方案有很多种。每种方案产生一种BCD码。

8421码、2421码、5421码都是有权码,其对应的权值对应名称,如8421码表示90即为1001 0000(1001对应=8*1+4*0+2*0+1*0=9,0000对应0);2421码表示90即为1111 0000(1111对应2*1+4*1+2*1+1*1=9,0000对应0),同理5421码表示90即为1100 0000(1100对应5*1+4*1+2*1+1*1=9,0000对应0);

用BCD码来表示十进制数:

 

余3码

余3码是由8421BCD码加上0011形成的一种无权码,由于它的每个字符编码比相应的8421码多3,故称为余三码。BCD码的一种。余3码的特点:当两个十进制数的和是9时,相应的余3码的和正好是15,于是可自动产生进位信号,而不需修正。1(0100)和9(1100), 2(0101)和8(1011),…6(1001)和4(0111)的余3码互为反码,这在求对于模9的补码很方便。

余3循环码

每一位的1并不代表固定的数值,它具有格雷码的优点,相邻的两个代码之间仅一位的状态不同。按余3码循环码组成计数器时,每次转换过程只有一个触发器翻转,译码时不会发生竞争-冒险现象。(变权码)

格雷码

格雷码是一种常见的无权码,特点是任何两个相邻代码之间仅有一位取值不同。其首、尾两个代码之间也只有一位不同,因此,格雷码又称为循环码。

此外,格雷码最高位的0和1只改变一次;若以最高位的0和1之间的交界为轴,其他位的代码是上下对称的。所以,格雷码又是反射码。

格雷码是一种错误最小化的编码。当模拟量发生微小变化,格雷码仅仅改变一位,这与其它码同时改变2位或更多的情况相比,更加可靠,且容易检错。例如,传输十进制的3到4,二进制是011到100三位都发生变化,但格雷码是010到110,只有b2发生变化。

格雷码构成方法:

一位格雷码有两个代码:0 和 1。

(n+1)位格雷码中的前 2^n个代码是将 n位格雷码,按顺序排列,最高位补0。

(n+1)位格雷码中的后 2^n个代码是将n位格雷码,按倒序排列,最高位补1

 3位二进制码与格雷码

4位二进制与格雷码: 

 

二进制码到格雷码的转换

(1)格雷码的最高位(最左边)与二进制码的最高位相同。

(2)从左到右,逐一将二进制码相邻的两位相加(舍去进位),作为格雷码的下一位。

 

格雷码到二进制码的转换

(1)二进制码的最高位(最左边)与格雷码的最高位相同。

(2)将产生的每一位二进制码,与下一位相邻的格雷码相加(舍去进位),作为二进制码的下一位。

 ASCII码

ASCII码即美国标准信息交换码,是一种字符编码标准,它共有128个代码,可以表示大、小写英文字母、十进制数、标点符号、运算符号、控制符号等,每个字符都用一个7位的二进制数表示,可以表示的字符范围是0-127。普遍用于计算机的键盘指令输入和数据等。

Unicode码

unicode码是一种国际标准编码,它用于表示字符和文本,是一种计算机科学中的标准,用于表示文本和字符。它可以表示世界上所有语言的字符,包括汉字、字母和其他符号,是一种多字节编码系统,可以表示世界上大多数语言的字符,它是一种用于表示文本的编码系统,可以用来表示几乎所有的字符。

Unicode的全称是“统一码”,它是一种字符编码系统,用于表示字符和文本,它使用多字节编码,可以表示世界上大多数语言的字符,它的目的是使用一种编码系统来表示世界上所有语言的字符,以便它们可以在计算机系统中进行交换和处理。

对该编码的进一步认识可在该文章中学习:

https://blog.csdn.net/LemonWatermelon/article/details/90300413

UTF-8编码

UTF-8编码是针对Unicode的一种可变长度字符编码。它可以用来表示Unicode标准中的任何字符,而且其编码中的第一个字节仍与ASCII相容,使得原来处理ASCII字符的软件无须或只进行少部分修改后,便可继续使用。因此,它逐渐成为电子邮件、网页及其他存储或传送文字的应用中,优先采用的编码。

ASCII码、Unicode码、UTF-8编码是目前键盘输入信息的输入法原理。ASCII编码是1个字节,而Unicode编码通常是2个字节。ASCII是单字节编码,无法用来表示中文;而Unicode可以表示所有语言。用Unicode编码比ASCII编码需要多一倍的存储空间。UTF-8编码是基于Unicode编码优化为“可变长编码”,可节省空间提高效率。

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

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

相关文章

常用SQL语句总结

SQL语句 文章目录 SQL语句1 SQL语句简介2 DQL(数据查询语句)3 DML(数据操纵语句)4 DDL(数据定义语句)5 DCL(数据控制语句)6 TCL(事务控制语句) 1 SQL语句简介…

【数据结构】二叉树 链式结构的相关问题

本篇文章来详细介绍一下二叉树链式结构经常使用的相关函数,以及相关的的OJ题。 目录 1.前置说明 2.二叉树的遍历 2.1 前序、中序以及后序遍历 2.2 层次遍历 3.节点个数相关函数实现 3.1 二叉树节点个数 3.2 二叉树叶子节点个数 3.3 二叉树第k层节点个数 3…

Crack:CAD Exchanger SDK 3.20 Web Toolkit 应用

在CAD Exchanger SDK 版本 3.20.0中,我们在 Web Toolkit 中包含了绘图、BIM 和 MCAD 查看器的示例,以展示如何使用每个工具可视化数据。这些查看器具有显示不同类型数据的特定功能,允许用户根据自己的需求单独使用它们。我们将继续增强每个查…

HTTP隧道识别与防御:机器学习的解决方案

随着互联网的快速发展,HTTP代理爬虫已成为数据采集的重要工具。然而,随之而来的是恶意爬虫对网络安全和数据隐私的威胁。为了更好地保护网络环境和用户数据,我们进行了基于机器学习的HTTP代理爬虫识别与防御的研究。以增强对HTTP代理爬虫的识…

【云原生】详细学习Docker-Swarm部署搭建和基本使用

个人主页:征服bug-CSDN博客 kubernetes专栏:云原生_征服bug的博客-CSDN博客 目录 Docker-Swarm编排 1.概述 2.docker swarm优点 3.节点类型 4.服务和任务 5.路由网格 6.实践Docker swarm 1.概述 Docker Swarm 是 Docker 的集群管理工具。它将 Doc…

百度智能云“千帆大模型平台”最新升级:接入Llama 2等33个模型!

今年3月,百度智能云推出“千帆大模型平台”。作为全球首个一站式的企业级大模型平台,千帆不但提供包括文心一言在内的大模型服务及第三方大模型服务,还提供大模型开发和应用的整套工具链,能够帮助企业解决大模型开发和应用过程中的…

适配器模式(AdapterPattern)

适配器模式 适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。 优缺点 优点: 单一职责原则。你可以将接口或数据转换代码从程序主要业务逻辑中分…

硬件产品经理:硬件版本管理必不可少

目录 内容简介 工程变更单 文件夹结构、文件命名约定和部件号 硬件持续集成(快速原型设计) 结论 推荐学习 相关内容 个人简介 内容简介 今天就来谈谈版本管理这个话题。 在做产品的过程中: 有效的版本控制,以及适当的工…

pdf只读模式改成可编辑模式

pdf文件打开之后是只读模式,这个是因为设置了限制编辑,想要将PDF只读模式改为可编辑模式,我们只需要取消限制编辑就可以了。 不过也有可能是因为有些是阅读、编辑一体的PDF阅读器,这种可能需要我们手动转换一下模式。 取消PDF限…

[Linux]计算机软硬体系结构

[Linux]计算机软硬体系结构 文章目录 [Linux]计算机软硬体系结构冯诺依曼体系结构冯诺依曼体系结构的组成冯诺依曼体系结构中各部件的功能对存储器(内存)的理解对数据流的理解 了解操作系统操作系统的概念管理的概念管理的本质管理的精髓“先描述,再组织”计算机软硬…

工业RFID系统故障的排查与维护手册

在工业领域中,RFID系统扮演着至关重要的角色,用于实现物品追踪、自动化控制和生产流程优化。然而,由于复杂的工作环境和设备运行条件,RFID系统故障可能会发生,对工业生产造成不利影响。为了帮助您排查和解决RFID系统故…

企业微信v4.1.8 版本新功能介绍

一、效率工具与基础体验优化 邮件 1、邮件安全 当邮件发件人、邮件内容存在风险时,将提示风险并自动隐藏邮件中的图片,避免轻信邮件内容。 对存在伪造风险的昵称将直接以发件地址代替展示,减少误导。 对邮件中的包含钓鱼欺诈、病毒或恶意软…

Java:Arrays类的API

Arrays // 1、public static string toString(类型[] arr):返回数组的内容 int[] arr {10,20,30,40,50,60}; system.out.println(Arrays.tostring(arr));//[10,20,30,40,50,60]// 2、public static类型[] copyOfRange(类型[] arr,起始索引,结束索引)﹔拷…

U 盘安装 Windows 10/11 时找不到磁盘驱动器的解决方法

1. 问题 使用 U盘安装 Windows10/11 的时候到选择安装位置时发现列表是空的无法选择任何驱动器。 2. 解决方法 (1) 点击下载安装 Intel Rapid Storage Technology (IRST) 驱动程序; (2) 在 U盘启动盘中创建名为 driver 的文件夹; (3) 将下载好的驱…

冠达管理:次新股为什么不能碰?

在出资过程中许多人都期望能够找到一种愈加快速、高效地赚取金钱的办法,这使得不少人瞄准了次新股。但是,次新股终究是什么,为何有人提醒咱们不要去碰它们呢? 一、什么是次新股? 所谓次新股,指的是上市时刻…

编译JSqlParser4.6-4.7最新源代码

通过https://github.com/JSQLParser/JSqlParser 下载最新的JSqlParser4.6-4.7的源代码,maven导入后出现下面问题 没有找到相应的源代码,原来这部分代码是这个下面 是jjt后缀的文件,原来JSQLParser源码中SQL解析那部分是使用JAVACC来生成的&a…

【LeetCode】地下城游戏(动态规划)

地下城游戏 题目描述算法分析编程代码 链接: 地下城游戏 题目描述 算法分析 编程代码 class Solution { public:int calculateMinimumHP(vector<vector<int>>& dungeon) {int m dungeon.size();int n dungeon[0].size();vector<vector<int>> d…

Flutter 文件上传(七牛云)简单封装

前言&#xff1a;记录了七牛云上传图片的简单封装、若有不足 欢迎指正。 开始前准备&#xff1a; A、七牛sdk版本一定要和dart版本相对应&#xff08;推荐用any方式、让其自己去匹配&#xff09;&#xff1b; qiniu_flutter_sdk: any B、七牛上传文件所需的参数&#xff1a; …

谈谈python编程语言

目录 1.什么是python 2.python的发展历史 3.python的具体应用领域 4.就业前景 1.什么是python Python是一种高级编程语言&#xff0c;它具有简单易学、可读性强和功能丰富的特点。Python由Guido van Rossum于1991年开发&#xff0c;并成为一种通用的编程语言。 以下是一些Py…