[杂谈]-八进制数

八进制数

文章目录

  • 八进制数
    • 1、概述
    • 2、八进制数的表示
      • 2.1 八进制数
      • 2.2 以八进制计数
      • 2.3 二进制数补零
    • 3、八进制到十进制转换
    • 4、十进制到八进制转换
    • 5、二进制到八进制转换示例
    • 6、八进制到二进制和十进制转换示例
    • 7、总结

1、概述

八进制编号系统是另一种使用基数为8计数系统,类似于前面讨论的具有以基数为16的十六进制计数系统。 与十六进制数类似,八进制计数系统减小了等效大二进制数的大小,并且使得对原始大二进制数的读取和写入变得方便。

计数系统的数字使用一个系列可以用来表达其值的数字。 此范围取决于计数系统的基值,即 以10为基数(十进制)、以16为基数(十六进制)或以8为基数(八进制)等。例如,以10为基数 和 以16为基数的计数系统具有范围分别为“10”和“16”数字。 类似地,以8为基数(八进制)计数系统的范围只有从“0”到“7”的“8”个数字,即 0、1、2、3、4、5、6 和 7。八进制数字只有 每个数字有八 (8) 个不同的值,并且从最低有效数字 (LSD) 开始,每个数字的权重为八 (8)。 为了以二进制容纳和表达“8”个数字,只需要三(3)位。 接下来,八进制值(0、1、2、3、4、5、6 和 7)分别对应于二进制等效值(000、001、010、011、100、101、110 和 111)。

在这里插入图片描述

八进制数是通过将二进制数分组为 3 位组而形成的。 它遵循之前在十六进制文章中采用的相同过程。 然而,在十六进制数中,二进制数被分成 4 位组(因为16为基数使用“0”到“15”范围并需要 4 位)。 与十六进制计数系统相比,八进制计数系统更简单,因为与使用数字加字母的十六进制相比,八进制计数系统仅使用数字。 此外,与十六进制的十六个“16”不同值相比,它只有八个“8”不同值。 在数字计算的早期时代,八进制计数系统非常著名,因为数字输入(D0 至 D7)和输出(Q0 至 Q7)的计数为八 (8)。 然而,随着数字输入和输出数量、系统架构和存储器大小等的增加,十六进制计数系统对于表示大的二进制值变得更加方便。

2、八进制数的表示

八进制编号系统使用以8为基数的计数系统,因此,八进制数由下标“8”表示。 例如, ( 142 ) 8 (142)_8 (142)8 被识别为八进制数,因为它的下标为“8”。 此外,值得注意的是,八进制数的每个数字的值都在 0 和 7 之间。例如,八进制数 ( 128 ) 8 (128)_8 (128)8是错误的,因为它的最低有效位 (LSD) 的值为“8”。 它不属于八进制计数范围,而是属于十进制或十六进制计数系统。 因此,可以通过检查数字的基值以及每个数字是否在其基数范围内来识别数字是否正确。

2.1 八进制数

下表列出了从 0 到 7 的十进制数及其对应的二进制和八进制数。

在这里插入图片描述

2.2 以八进制计数

八进制数的每个数字的权重为八 (8),从最低有效数字开始。 从最低有效数字到最高有效数字,每个数字的权重按 8 的幂增加。 给出了每个八进制数字(直至第 7 位)的十进制等效重量。

在这里插入图片描述

八进制数字的数字范围为“0 到”7”,对于超出此范围的计数,将在左侧添加另一个八进制数字。 添加第二个数字导致计数到 ( 77 ) 8 (77)_8 (77)8,十进制相当于 ( 63 ) 10 (63)_{10} (63)10。 因此,两个八进制数最多可以数到 63。同样,一个三位八进制数最多可以数到$ (777)_8$,这使得十进制的计数范围最多可达 ( 511 ) 10 (511)_{10} (511)10

2.3 二进制数补零

由于二进制数被分成 3 位组以确定其等效的八进制数。 这需要一个由三 (3) 的倍数位组成的二进制数,例如 3、6、9、12 和 15 等。但是,在处理二进制数时情况可能并非如此,并且二进制数的位长度可能会有所不同。 解决方案是从最低有效位 (LSB) 开始将二进制数分成 3 位组。 如果二进制数的位没有平均分配到 3 位组中,那么最后我们将剩下不到 3 位。 前导零被添加到剩余位中,以便将其长度扩展到 3 位。 最后一组 3 位构成八进制数的最高有效位 (MSD)。 下表将一个非标准的13位二进制数(1 0101 1101 101010)通过添加前导零转换为15位(可被3整除)二进制数,然后确定其等效的八进制数。

在这里插入图片描述

在上面的示例中,13 位数字需要将具有零值的 2 位添加到最左侧,才能使其成为 15 位二进制数。 同样,11 位二进制数需要添加一 (1) 个零位。 使用八进制数可将二进制数的长度减少三 (3) 倍。

3、八进制到十进制转换

八进制到十进制的转换是通过使用前面文章中介绍的加权数字和方法来实现的。 在以下示例中,八进制数 ( 4262 ) 8 (4262)_8 (4262)8 转换为十进制数。

在这里插入图片描述

4、十进制到八进制转换

从十进制到八进制的转换需要应用重复除以8的方法。 在前面的文章中,使用相同的方法将十进制数转换为其等效的二进制和十六进制值。 在以下示例中,十进制数 ( 238 ) 10 (238)_{10} (238)10再次用于获取其等效的八进制数。

在这里插入图片描述

5、二进制到八进制转换示例

8 位二进制数 ( 11011001 ) 2 (11011001)_2 (11011001)2 到八进制数的转换如下所示。

在这里插入图片描述

6、八进制到二进制和十进制转换示例

下面以 ( 6271 ) 8 (6271)_8 (6271)8 到其等效的二进制和十进制数的转换为例进行说明。

在这里插入图片描述

7、总结

  • 八进制数使用以 8 为基数的计数系统,每个数字的值范围为 0 到 7,即八 (8) 个数字。
  • 在八进制数中,每个数字都是一组或一组 3 位。 通过将二进制数分成 3 位组来获得八进制中的二进制数的等价物,并将从“0”到“7”的等效八进制值分配给每个组。
  • 二进制数可能需要在最左侧(最高有效位)添加前导零以形成 3 位组。
  • 八进制数用“8”作为下标表示,例如 73 5 8 735_8 7358
  • 八进制数可以使用加权数字和的方法转换为十进制数。
  • 从十进制到八进制的转换需要应用重复除以8的方法。
  • 八进制数将其等效二进制数的长度减少了三 (3) 倍。 然而,八进制数字现在很少使用,并且如前所述,十六进制编号系统已经取代了它。

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

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

相关文章

Linux 线程属性相关函数

pthread_attr_t就是对应线程的属性 /*#include <pthread.h>int pthread_attr_init(pthread_attr_t *attr);初始化线程属性变量int pthread_attr_destroy(pthread_attr_t *attr);释放线程属性资源int pthread_attr_getdetachstate(const pthread_attr_t *attr, int *deta…

数据变换:数据挖掘的准备工作之一

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ &#x1f434;作者&#xff1a;秋无之地 &#x1f434;简介&#xff1a;CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作&#xff0c;主要擅长领域有&#xff1a;爬虫、后端、大数据…

里氏替换原则~

里氏替换原则&#xff08;Liskov Substitution Principle&#xff09;是面向对象设计中的一个基本原则&#xff0c;它是由Barbara Liskov提出的。 如果对于每一个类型为Apple的对象1&#xff0c;都有类型为fruit的对象2&#xff0c;使得以fruit定义的所有程序 P 在所有的对象1都…

vue获取本地缓存并转为json格式

场景 要求获取当前登录用户id&#xff0c;传入后台去筛选属于该用户的数据&#xff1b; 当前登录用户信息一般会在本地存储中&#xff0c;有些则是在session中&#xff0c;此处只对本地存储做讨论&#xff1b; 本地缓存的用法 1 存储数据 localStorage.setltem(userId,"…

Java多线程篇(4)——wait/notify和park/unPark

文章目录 Object - wait/notifyobject.wait()object.notify() LockSupport - park/unparkLockSupport.park()LockSupport.unPark() Object - wait/notify object.wait() ObjectSynchronizer::wait 从这段代码可以得到两个信息 1&#xff1a;wait() 底层是对象锁&#xff08;就…

20 mysql const 查询

前言 这里主要是 探究一下 explain $sql 中各个 type 诸如 const, ref, range, index, all 的查询的影响, 以及一个初步的效率的判断 这里会调试源码来看一下 各个类型的查询 需要 lookUp 的记录 以及 相关的差异 测试表结构信息如下 CREATE TABLE tz_test (id int(1…

Python 计算三角形面积

"""计算三角形面积介绍&#xff1a;已知三角形边长分别为x、y、z&#xff0c;可以计算三角形半周长q&#xff0c;然后根据海伦公式计算三角形面积S三角形半周长&#xff1a;q (x y z) / 2三角形面积&#xff1a;S (q * (q-x) * (q-y) * (q-z)) ** 0.5知识点…

HCIE-容器docker

1、安装配置操作系统&#xff0c;使用CentOS stream 8镜像 之前&#xff1a;RHEL 8.4 发布了&#xff0c;CentOS紧随其后&#xff0c;发布CentOS 8.4 之后&#xff1a;CentOS 走在前面&#xff0c;成为RHEL上游&#xff0c;再去发布RHEL 制作模板&#xff0c;模板配置要求&…

计算机视觉与深度学习-卷积神经网络-卷积图像去噪边缘提取-图像去噪 [北邮鲁鹏]

目录标题 参考学习链接图像噪声噪声分类椒盐噪声脉冲噪声对椒盐噪声&脉冲噪声去噪使用高斯卷积核中值滤波器 高斯噪声减少高斯噪声 参考学习链接 计算机视觉与深度学习-04-图像去噪&卷积-北邮鲁鹏老师课程笔记 图像噪声 噪声点&#xff0c;其实在视觉上看上去让人感…

用AVR128单片机的音乐门铃

一、系统方案 1、使用按键控制蜂鸣器模拟发出“叮咚”的门铃声。 2、“叮”声对应声音频率714Hz&#xff0c;“咚”对应声音频率500Hz,这两种频率由ATmega128的定时器生成&#xff0c;定时器使用的工作模式自定&#xff0c;处理器使用内部4M时钟。“叮”声持续时间300ms&#x…

LabVIEW报表生成工具包时出现错误-41106

LabVIEW报表生成工具包时出现错误-41106 使用LabVIEW报表生成工具包创建Excel报告或Word文档时&#xff0c;收到以下错误&#xff1a;Error -41106 occurred at NI_Excel.lvclass:new report subVI.vi ->NI_report.lvclass:New Report.vi -> Export Report With JKI.vi …

【数据库】Sql Server 2022通过临时表和游标遍历方式逻辑处理获取目标数据

2023年&#xff0c;第39周。给自己一个目标&#xff0c;然后坚持总会有收货&#xff0c;不信你试试&#xff01; 今天有个小伙伴咨询一个Sql Server处理数据的问题&#xff0c;刚好重温下SqlServer临时表和游标的知识点 目录 一、需求点描述二、临时表2.1、局部临时表&#xff…

为什么曲面函数的偏导数可以表示其曲面的法向量?

为什么曲面函数的偏导数可以表示其曲面的法向量&#xff1f; 引用资料&#xff1a; 1.知乎shinbade&#xff1a;曲面的三个偏导数为什么能表示法向量&#xff1f; 2.Geogebra羅驥韡 (Pegasus Roe)&#xff1a;偏導數、切平面、梯度 曲面 F ( x , y , z ) 0 F(x,y,z)0 F(x,y,…

vim,emacs,verilog-mode这几个到底是啥关系?

vim&#xff1a;不多说了被各类coder誉为地表最强最好用的编辑器&#xff1b;gvim&#xff0c;gui vim的意思&#xff1b; emacs&#xff1a;也是一个编辑器&#xff0c;类似vscode&#xff1b; vim在使用的时候为了增强其功能&#xff0c;有好多好多插件&#xff0c;都是以.…

爬虫 — Scrapy 框架(一)

目录 一、介绍1、同步与异步2、阻塞与非阻塞 二、工作流程三、项目结构1、安装2、项目文件夹2.1、方式一2.2、方式二 3、创建项目4、项目文件组成4.1、piders/__ init __.py4.2、spiders/demo.py4.3、__ init __.py4.4、items.py4.5、middlewares.py4.6、pipelines.py4.7、sett…

Vue的进阶使用--模板语法应用

目录 前言 一. Vue的基础语法 1.插值 1.1文本插值 1.2HTML插值 1.3属性插值 1.4Vue演示三元条件运算 2 指令 2.1if&&else指令&#xff08;v-if/v-else-if/v-else&#xff09; 2.2 v-for 指令 2.3 v-on指令(动态参数) 2.4知识点补充之v-if与v-show的区别 3.过…

Webpack设置代码映射,可调试打包后的代码

当我们的代码打包过后再看源码就会变成下面这个样子&#xff1a; 这时候我们就调试不了我们的代码 解决方式&#xff1a; 在webpack.config.js中添加如下代码&#xff1a; module.exports {mode: "development", // 设置打包的模式&#xff1a;production生产模式…

看阿里测试工程师如何玩转postman+newman+jenkins接口自动化

【软件测试面试突击班】如何逼自己一周刷完软件测试八股文教程&#xff0c;刷完面试就稳了&#xff0c;你也可以当高薪软件测试工程师&#xff08;自动化测试&#xff09; postman用来做接口测试非常方便&#xff0c;接口较多时&#xff0c;则可以实现接口自动化 一、环境准备…

gin框架再探

Gin框架介绍及使用 | 李文周的博客 (liwenzhou.com) lesson03_gin框架初识_哔哩哔哩_bilibili 1.路由引擎 //路由引擎 rgin.Default() 2.一些http请求方法 get post put delete等等 遇到什么路径&#xff0c;执行什么函数 r.GET("/hello",func{做你想做的事返回…

iPhone15线下购买,苹果零售店前门店排长队

今年的苹果新品发布会于北京时间 9 月 13 日凌晨举行&#xff0c;并于 9 月 15 日&#xff08;周五&#xff09;开启订购&#xff0c;9 月 22 日&#xff08;周五&#xff09;起正式发售。 据多位网友反馈&#xff0c;首批苹果 iPhone15 系列手机、Apple Watch Ultra 2 / Seri…