数字系统与进制转换

数字系统

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

数字系统定义了用独特的符号(数码)来表示一个数字。在不同的数字系统中,一个数字有不同的表示方法,使用有限的数字符号来表白数字。比如:阿拉伯数字数字系统: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.rhkb.cn/news/372626.html

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

相关文章

项目记录:C语言学生成绩排名程序

一个很简单的小项目,大一的学生作业。我简单介绍一下相关功能和代码之类的吧~ 本来题目不强制要求菜单的,我有点强迫症加了菜单。 【1】题目: 一个班40名学生,期末有10门课程成绩,要求计算并输出如下数据: …

Xilinx Vitis 2020工程源目录修改

目录 1 背景2 分析3 解决4 使用4.1 修改路径4.2 编译工程4.2.1 清理工程4.2.2 编译工程 1 背景 Xilinx Vitis可以做standalone程序开发,不过其工程中使用的路径为绝对路径。工程更换位置后编译将会显示错误。例如:源目录为D:/work,复制到同事电脑上放到C:/work(同事…

注册中心组成结构和基本原理解析

假如你正在设计和开发一个分布式服务系统,系统中存在一批能够独立运行的服务,而在部署上也采用了集群模式以防止出现单点故障。显然,对于一个完整的业务系统而言,这些服务之间需要相互调用并形成复杂的访问链路,一种可…

HTML(29)——立体呈现

作用:设置元素的子元素是位于3D空间中还是平面中 属性名:transform-style 属性值: flat:子级处于平面中preserve-3d:子级处于3D空间 步骤: 父级元素添加 transform-style:preserve-3d 子级定位调整子盒子的位置&a…

14-54 剑和诗人28 - 用于实时嵌入查找的向量检索

介绍 LLM 成功的关键因素是向量嵌入的使用。通过将文本转换为数字向量表示,我们可以将语义含义映射到数学向量空间。这使得模型能够根据向量之间的相似性在语言中概括模式。 随着我们的模型和数据集变得越来越大,高效地存储、组织和检索这些嵌入变得至关…

C++ Qt 自制开源科学计算器

C Qt 自制开源科学计算器 项目地址 软件下载地址 目录 0. 效果预览1. 数据库准备2. 按键&快捷键说明3. 颜色切换功能(初版)4. 未来开发展望5. 联系邮箱 0. 效果预览 普通计算模式效果如下: 科学计算模式效果如下: 更具体的功能演示视频见如下链接…

【易捷海购-注册安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

ffmpeg滤镜-drawtext-命令行

使用 FFmpeg 在视频上添加文字可以通过 drawtext 滤镜来实现。这个滤镜允许你指定字体、大小、颜色、位置等。 基本用法 以下命令将 "Hello, World!" 添加到视频的顶部左侧: ffmpeg -i input.mp4 -vf "drawtexttextHello, World\!:fontcolorwhite…

JAVA Tesseract OCR引擎

Tess4j是一个基于Tesseract OCR引擎的Java库, Tesseract库最初由惠普实验室于1985年开发&#xff0c;后来被Google收购并于2006年开源。识别效果不好&#xff0c;速度还慢&#xff0c;但是好早好早了。 一、POM依赖 <!--OCR识别https://digi.bib.uni-mannheim.de/tesserac…

14-26 剑和侠客 – 预训练模型三部曲3 – 机器人时代来临

概述 在第 1 部分和第 2 部分中&#xff0c;我们讨论了适用于文本和图像任务的预训练模型&#xff0c;并探索了当今常用的模型。我们分析了这些模型的架构以及如何将它们用于特定任务。实现 AGI 所需的两个主要支柱是语言理解和机器的视觉能力。有许多任务与这两种能力有关。 …

Syncthing一款开源去中心化和点对点文件同步工具

Syncthing&#xff1a;一款开源的文件同步工具&#xff0c;去中心化和点对点加密传输&#xff0c;支持多平台&#xff0c;允许用户在多个设备之间安全、灵活地同步和共享文件&#xff0c;无需依赖第三方云服务&#xff0c;特别适合高安全性和自主控制的文件同步场景。 &#x…

4. kvm存储虚拟化

kvm存储虚拟化 一、命令行工具管理虚拟磁盘1、查看虚拟磁盘2、添加磁盘3、删除磁盘 二、qcow2格式的磁盘文件1、创建磁盘文件2、差量镜像/快速创建虚机2.1 创建差量镜像2.2 准备配置文件2.3 创建虚拟机2.4 批量部署虚拟机 三、存储池 storage pool1、类型2、在线迁移2.1 规划后…

【基于R语言群体遗传学】-14-种群起源的相对似然

我们可以将预测的基因型比例视为在种群中看到一组特定等位基因的概率。如果种群在等位基因频率上存在差异&#xff0c;我们可以使用基因型来推断个体起源于每个种群的相对可能性。大家可以先看一下之前的博客&#xff1a;群体遗传学_tRNA做科研的博客-CSDN博客 种群起源的相对似…

pytest-yaml-sanmu(六):YAML数据驱动测试

如果说 pytest 中哪些标记使用得最多&#xff0c;那无疑是 parametrize 了&#xff0c; 它为用例实现了参数化测试的能力&#xff0c;进而实现了数据驱动测试的能力。 1. 使用标记 parametrize 的使用需要提高两个内容&#xff1a; 参数名 参数值 pytest 在执行用例时&…

javascript DOM BOM 笔记

Web API API的概念 API&#xff08;Application Programming Interface,应用程序编程接口&#xff09;是一些预先定义的函数&#xff0c;目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力&#xff0c;而又无需访问源码&#xff0c;或理解内部工作机制的细…

el-scrollbar实现自动滚动到底部(AI聊天)

目录 项目背景 实现步骤 实现代码 完整示例代码 项目背景 chatGPT聊天消息展示滚动面板&#xff0c;每次用户输入提问内容或者ai进行流式回答时需要不断的滚动到底部确保展示最新的消息。 实现步骤 采用element ui 的el-scrollbar作为聊天消息展示组件。 通过操作dom来实…

高智能土壤养分检测仪:农业生产的科技新助力

在科技日新月异的今天&#xff0c;农业领域也迎来了革命性的变革。其中&#xff0c;高智能土壤养分检测仪作为现代农业的科技新助力&#xff0c;正逐渐改变着传统的农业生产方式&#xff0c;为农民带来了前所未有的便利与效益。 高智能土壤养分检测仪&#xff0c;是一款集高科技…

共筑智能未来 | 思腾合力闪耀2024世界人工智能大会(WAIC 2024)

在刚刚结束的2024世界人工智能大会暨人工智能全球治理高级别会议&#xff08;WAIC 2024&#xff09;上&#xff0c;思腾合力作为行业领先的人工智能基础架构解决方案提供商&#xff0c;凭借卓越的产品和解决方案&#xff0c;成为展会上的亮点之一。此次盛会不仅展示了全球人工智…

Android 性能优化之启动优化

文章目录 Android 性能优化之启动优化启动状态冷启动温启动热启动 耗时检测检测手段TraceView使用方式缺点 Systrace环境配置使用方式TraceView和Systrace比较 AOP统计耗时环境配置使用 优化白屏优化异步加载优化环境配置使用 延迟加载优化AppStartup 源码下载 Android 性能优化…

网站高性能架构设计——高性能缓存架构

从公众号转载&#xff0c;关注微信公众号掌握更多技术动态 --------------------------------------------------------------- 一、缓存基础 1.缓存简介 缓存提升性能的幅度&#xff0c;不只取决于存储介质的速度&#xff0c;还取决于缓存命中率。为了提高命中 率&#xff0c…