数字系统与进制转换

数字系统

数字逻辑是计算机科学的基础,它研究的是如何通过逻辑门电路(与门、或门、非门等)实现各种逻辑功能。数字系统则是由数字逻辑电路组成的系统,可以实现各种复杂的运算和控制功能。在计算机科学中,数字逻辑和数字系统是非常重要的基础知识,它们是构成计算机硬件和软件的基础。

数字系统定义了用独特的符号(数码)来表示一个数字。在不同的数字系统中,一个数字有不同的表示方法,使用有限的数字符号来表白数字。比如:阿拉伯数字数字系统:0、1、2、3、4、5、6、7、8、9;罗马数字系统:I II III IV V VI VII... 。数字系统可分为:位置化系统和非位置化系统。

位置化和非位置化数字系统

在位置化数字系统中,数字符号所占据的位置决定了其表示的值。常用的有:十进制、二进制、十六进制和八进制。在该系统中,数字这样表示:

它的值是:

其中:S是一套符号及,b是底(或基数),b=s符号集中的符号总数,+/-表示数字为正或负。例如:以十进制数字系统为例,则S表示的集合为 S={0,1,2,3,4,5,6,7,8,9},b=10;假设随便取一个十进制数66,则它的数字表示为 +(66)10 (其中10为下标),只是一般省略+、()和底,直接表示为66,;如果是-66,则“-”符号不能省略。

注意:这些符号不能直接存储在计算机中,计算机存储正负数的方式不同。

十进制系统(以10为底)

在十进制系统中,整数(没有小数部分的整型数字)使我们所熟悉的,我们在日常生活中使用整数。例如:520,它是一个三位数,实际上,它的计算方式为:5×10^2+2×10^1+0乘以10^0,即((10×100)+(2×10)+(0×1))=500+20+0=520。

有时我们需要知道用数码k表示的十进制整数的最大值,该最大值=10^k-1。例如:k=4时,可以表示的数字最大值为10的4次方-1,即10000-1=9999。

此外,更为广泛的是实数(带有小数部分的数字),其指计算方式为:

例如:-66.66的值计算为 -(6×10^1+6×10^0+6×10^-1+6×10^-2),即-(6×10+6×1+6×0.6+6×0.06)=-66.66。

二进制系统(以2为底)

符号集为 S={0,1},底 b=2;该系统中的符号常被称为二进制数码或位(位数码),数据和程序是以二进制模式(即位模式),存储在计算机中的,这是因为计算机由电子开关制成,它们仅有开和关两种状态,1和0分别表示两种不同的状态。

同理,二进制系统数值计算方法如下:

例如:(1101.01)2(其中2为底数表示二进制),这样一个二进制数字要转换为十进制可以用:1×2^3+1×2^2+0×2^1+1×2^0+0×2^(-1)+1×2^(-2)=8+4+0+1+0+0.25=13.25

有时我们需要知道用数码k表示的十进制整数的最大值,该最大值=2^k-1。 例如:当k=4时,最大值为(1111)2(其中2为底数表示二进制),其值为15=2^4-1。

十六进制系统(以16为底)

尽管二进制系统用于存储计算机数据,但是不便于在计算机外部表示数字,因为与十进制相比,二进制符号过长。而十进制不能直接存储在计算机中,在二进制和十进制数字之间没有显然的关系,而且他们之间的转换也不快捷。为了克服这个问题,发明了两种位置化系统:十六进制和八进制。

十六进制符号集 S={0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F},其中A,B,C,D,E,F分别表示10、11、12、13、14、15;底为 b=16。可能你会奇怪为什么不用10、11等数字来表示,而用字母来表示?因为在我们的数字系统中符号都是单个的,而且如果用10、11等数字来表示就容易出现歧义,如:1123,这里的11是表示两个1还是11?因此为了避免这种情况,用字母来表示比较合适。

同理,十六进制系统数值计算方法如下:

用数码k表示的十六进制整数的最大值,该最大值=2^k-1。 例如:当k=4时,最大值为(FFFF)16(其中16为底数表示十六进制),其值为16^4-1=65535。

八进制系统(以8为底)

符号集为 S={0,1,2,3,4,5,6,7},底 b=8;

同理,八进制系统数值计算方法如下:

 用数码k表示的八进制整数的最大值,该最大值=8^k-1。 例如:当k=5时,最大值为(77777)8(其中8为底数表示八进制),其值为8^5-1=32767。

二进制、八进制、十六进制转为十进制

将二进制、八进制、十六进制转为十进制就是用下面公式:

其中将S替换为相应的符号集,b替换为相应的底数即可。 

例如此时有数字(1010)2(其中2为底数),则代入公式为:1×2^3+0×2^2+1×2^1+0×2^0=8+0+2+0=10

十进制转为二进制、八进制或十六进制

转换需要分为两步,第一步为计算整数部分,第二步为计算小数部分。

首先整数部分计算规则为不断除以要转化进制的底数,直到商为0时停止,并且每一步计算之后记录得到的余数,再将得到的余数倒着写即可。例如:十进制数9转换为2进制数的计算过程如下,得到的结果为(1001)2,其中2为底数表示2进制数。

接下里以十进制数172转换为8进制数为例,转换结果为254,计算过程如下图:

接下来是小数部分的转换,用十进制的小数乘以要转化的进制的底数部分并取整数正序排列即可,而对于部分无限循环的则可以通过限制取到几位即停止。例如:十进制数0.625转换为小数部分计算规则如下:

具体过程为:首先将0.625×2得到结果为1.25,再将整数部分1取出,得到剩下的为0.25,再将0.25×2得到0.5,再将整数部分0取出得到0.5,再将0.5×2得到结果为1.0,此时取出整数部分1之后即可停止计算,因为小数部分为0不管怎么计算乘以任何数都是0;在将取出的整数顺序排列即可得到结果,即十进制数0.625转换为二进制数为0.101。

下面再给出一个例子:将十进制数0.634转换为8进制数且结果精确到5为小数,结果为0.50446,具体计算过程如下图:

二进制和八进制相互转换

每三个二进制数都可以转换为八进制数中的一位,如下图

二进制数八进制数
0011
0102
0113
1004
1015
1106
1117

只需要将二进制数每三位排在一起转换为对应的八进制数字即可,例如:二进制数00011001,可以写为 000 011 001,转换为0 3 1,则对应的八进制数为31。

二进制和十六进制相互转化

每四个二进制数都可以转换为十六进制数中的一位,如下图

二进制数十六进制数
00011
00102
00113
01004
01015
01106
01117
10008
10019
1010A
1011B
1100C
1101D
1110E
1111F

只需要将二进制数每四位排在一起转换为对应的十六进制数字即可,例如:二进制数00011001,可以写为 0001 1001,转换为1 9,则对应的八进制数为19。

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

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

相关文章

自定义波形图View,LayoutInflater动态加载控件保存为本地图片

效果图: 页面布局: <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="…

Kubernetes基于helm部署jenkins

Kubernetes基于helm安装jenkins jenkins支持war包、docker镜像、系统安装包、helm安装等。在Kubernetes上使用Helm安装Jenkins可以简化安装和管理Jenkins的过程。同时借助Kubernetes&#xff0c;jenkins可以实现工作节点的动态调用伸缩&#xff0c;更好的提高资源利用率。通过…

MySQL Innodb存储引擎中,当页默认的大小是16K时,页中最多存放多少行的记录?

1、题目引入 Innodb存储引擎是面向行的(row-oriented)&#xff0c;也就是说数据的存放按行进行&#xff0c;每页存放的行记录是有硬性定义的&#xff0c;当页默认的大小是16K时&#xff0c;页中最多存放多少行的记录&#xff1f; A、1600 行B、8192 行C、16383 行D、7992 行 …

基于Python协同过滤的旅游景点推荐系统,采用Django框架,MySQL数据存储,Bootstrap前端,echarts可视化实现

随着旅游业的迅速发展&#xff0c;个性化旅游推荐系统成为提升用户体验和促进旅游市场增长的重要工具。本研究旨在设计并实现一种基于Python协同过滤的旅游景点推荐系统&#xff0c;结合Django框架、MySQL数据库存储、Bootstrap前端框架以及echarts数据可视化技术&#xff0c;为…

【粉丝福利 | 第8期】值得收藏!推荐10个好用的数据血缘工具

⛳️ 写在前面参与规则&#xff01;&#xff01;&#xff01; ✅参与方式&#xff1a;关注博主、点赞、收藏、评论&#xff0c;任意评论&#xff08;每人最多评论三次&#xff09; ⛳️本次送书1~4本【取决于阅读量&#xff0c;阅读量越多&#xff0c;送的越多】 目前市面上绝…

数据迁移探索

概念 数据迁移是指将数据从一个计算环境或存储系统移动到另一个计算环境或存储系统。 随着公司业务的发展&#xff0c;出于成本优化、系统升级、分库分表、整合数据等原因。数据迁移工作在日常工作中会陆续出现。 我们可以将数据迁移分成两个部分&#xff0c;第一部分是数据…

springboot高职院校毕业生信息管理系统-计算机毕业设计源码27889

摘 要 基于Java语言开发的高职院校毕业生信息管理系统旨在提供一个便捷、高效的方式来管理毕业生的相关信息。系统包括学生基本信息管理、成绩管理、就业信息管理等模块&#xff0c;通过界面友好、操作简单的设计&#xff0c;方便管理员快速查询和更新学生信息。系统还提供数据…

采用前后端分离技术架构+java语言开发的全套产科信息管理系统源码 可与医院HIS、LIS、PACS、RIS等系统进行对接

采用前后端分离技术架构java语言开发的全套产科信息管理系统源码 可与医院HIS、LIS、PACS、RIS等系统进行对接 什么是产科信息管理系统-建档管理&#xff1f; 产科信息管理系统建档管理通过信息技术实现了孕产妇健康信息的电子化、网络化和智能化管理&#xff0c;提高了医疗服…

Riscv 架构的合规测试

为啥直接关注riscv-arch-test&#xff0c;是因为RISCOF 测试框架使用的是riscv-arch-test 1. The architectural test 架构测试是一个单一的测试&#xff0c;代表了可编译和运行的最小测试代码。它是用汇编代码编写的&#xff0c;其产品是test signature。一个架构测试可能由…

微信小程序推送消息java版

需求背景 使用springboot2微信小程序推送消息。百度了一下看了一篇文章整体还可以&#xff0c;这里推荐一下。 教程解析 1、微信平台开通订阅消息。 2、添加模板。 3、springboot后台接口开发 微信平台验证地址接口开发&#xff0c;然后部署到公网服务器。 4、微信平台验…

基于FPGA的数字信号处理(15)--定点数的舍入模式(6)向0取整fix

前言 在之前的文章介绍了定点数为什么需要舍入和几种常见的舍入模式。今天我们再来看看另外一种舍入模式&#xff1a;向上取整fix。 10进制数的fix fix&#xff1a;也叫 向0取整。它的舍入方式是数据往0的方向&#xff0c;舍入到最近的整数&#xff0c;比如1.75 fix到2&#xf…

将WordPress的文章重新排序的3个方法

有效的调整文章显示顺序看开可以更好突出内容&#xff0c;还可以保持网站的新鲜感&#xff0c;今天我将带您了解三种方法&#xff0c;通过重新排序文章显著提升网站的吸引力。我们将逐步讲解从调整设置到使用插件以及“置顶”文章的每一种方法&#xff0c;确保WordPress 新手也…

利用python进行数据分析 —— python正则表达式(持续更新中!)

文章目录 利用python进行数据分析 —— python基础知识进阶重点笔记&#xff1a;正则表达式re.match 匹配开头re.search 全文匹配re.sub 替换删除re.compile 编译正则findall 返回列表finditer 返回迭代器re.split 分割返回列表(?P...) 分组匹配正则表达符号、修饰符通配符1 ^…

谷歌上新!最强开源模型Gemma 2,27B媲美LLaMA3 70B,挑战3140亿Grok-1

文章目录 LMSYS Chatbot Arena&#xff1a;开源模型性能第一Gemma为什么这么强&#xff1f;架构创新对AI安全性的提升 A领域竞争激烈&#xff0c;GPT-4o 和 Claude 3.5 Sonnet 持续发力&#xff0c;谷歌迅速跟进。 谷歌为应对AI竞争所采取的策略&#xff1a;依靠 Gemini 闭源模…

hdu物联网硬件实验3 按键和中断

学院 班级 学号 姓名 日期 成绩 实验题目 按键和中断 实验目的 实现闪灯功能转换 硬件原理 无 关键代码及注释 /* Button Turns on and off a light emitting diode(LED) connected to digital pin 13, when pressing a pushbutton attached…

解决WSL2报错:当前电脑配置不支持WSL2,请启用虚拟机平台 Windows 功能并确保在 BIOS 中启用虚拟化

事情要追溯到突发奇想下载了腾讯的手游模拟器开始。。。因为一直闪退&#xff0c;模拟器自检就要求把虚拟化功能关闭了&#xff0c;结果还是一直闪退&#xff0c;WSL2也给我报错了。。。大无语 主要通过以下两个步骤解决&#xff0c;操作了之后需要把电脑重启&#xff1a; 一、…

小程序做自定义分享封面图,Canvas base64图片数据真机上不显示?【已解决】

首选说一下需求&#xff0c;做一个小程序分享&#xff0c;但是封面图要自定义&#xff0c;除了要有对应商品还有有背景图&#xff0c;商品名。类似这种 实现逻辑&#xff0c;把商品图和背景图&#xff0c;再加上价格和商品名用canvas 渲染出来 这是弄好之后的效果图&#xff0…

SpringSecurity中文文档(Servlet Method Security)

Method Security 除了在请求级别进行建模授权之外&#xff0c;Spring Security 还支持在方法级别进行建模。 您可以在应用程序中激活它&#xff0c;方法是使用EnableMethodSecurity 注释任何Configuration 类&#xff0c;或者将 < method-security > 添加到任何 XML 配…

springbootAl农作物病虫害预警系统-计算机毕业设计源码21875

摘要 随着农业现代化的推进&#xff0c;农作物病虫害的防治已成为农业生产中的重要环节。传统的病虫害防治方法往往依赖于农民的经验和观察&#xff0c;难以准确、及时地预测和防控病虫害的发生。因此&#xff0c;开发一种基于现代信息技术的农作物病虫害预警系统&#xff0c;对…

【计算机毕业设计】012基于微信小程序的科创微应用平台

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…