详解进制之间的转换

目录

一、十进制转换

1、十进制转换为二进制

2、十进制转换为八进制

3、十进制转换为十六进制

二、二进制转换

1、二进制转换为八进制

2、二进制转换成十进制

3、二进制转换为十六进制

三、八进制转换

1、八进制转换成二进制

2、八进制转换成十进制

3、八进制转换成十六进制

四、十六进制转换

1、十六进制转换二进制

2、十六进制转换八进制

3、十六进制转换十进制


一、十进制转换

1、十进制转换为二进制

1、用2除十进制数,得出口余数和商。2、重复步骤1,直到商为0为止。3、将余数从下往上排列,即得到二进制数。

示例:

将十进制10转换成二进制10/2=5...05/2=2...12/2=1...01/2=0...1转换成二进制为1010

2、十进制转换为八进制

1、用8除十进制数,得出口余数和商。2、重复步骤1,直到商为0为止。3、将余数从下往上排列,即得到八进制数。

示例:

将十进制136转换成八进制136/8=17...017/8=2...12/8=0...2转换成八进制为210

3、十进制转换为十六进制

1、用16除十进制数,得出口余数和商。2、重复步骤1,直到商为0为止。3、将余数从下往上排列,如果余数为0-9,则用其本身表示;4、如果余数为10-15,则用大写或小写字母A-F表示,即10表示为A,11表示为B,一直到15表示为F。

示例:

将十进制255转换成十六进制255/16=15...1515/16=0...15从9开始用字母表示,15是F,所以转换成十六进制为FF

二、二进制转换

1、二进制转换为八进制

1. 从二进制数的最右边开始,每次取连续的三位(如果最左边不足三位,则按实际位数处理)。2. 将这三位二进制数转换为其对应的八进制数
(可以参照以下对应关系:000 -> 0, 001 -> 1, ..., 100 -> 4, 101 -> 5, ..., 111 -> 7)。3. 按照从右到左的顺序,将得到的所有八进制数连接起来。

示例:

将二进制数 1101010 转换为八进制:1、取最右边的三位:101,对应八进制数为 5。2、向左取三位:100,对应八进制数为 4。3、最左边还剩一个 1,由于不足三位,直接作为一位八进制数 1。二进制数 1101010 转换为八进制后为 145。

2、二进制转换成十进制

 1. 从二进制数的最右边(个位)开始,每位数字乘以2的相应幂次。• 最右边一位的权重是 (2^0),因为 (2^0 = 1)。• 向左第二位的权重是 (2^1)。• 第三位是 (2^2)。• 以此类推,第n位的权重是 (2^{(n-1)})。2. 将每一位上的数字与对应的权重相乘,然后将所有这些乘积相加。

示例: 

例如,将二进制数 1010 转换为十进制:1010
=1*2^3 + 0*2^2 + 1*2^1 + 0*2^0 
= 8 + 0 + 2 + 0 
= 10二进制数 1010 转换为十进制数为 10

3、二进制转换为十六进制

1. 从二进制数的最右边开始,每次取连续的四位(如果最左边不足四位,则按实际位数处理)。2. 将这四位二进制数转换为其对应的十六进制数
(可以参照以下对应关系:0000 -> 0, 0001 -> 1, ..., 1000 -> 8, 1001 -> 9, 1010 -> A, 1011 -> B, ..., 1111 -> F)。3. 按照从右到左的顺序,将得到的所有十六进制数连接起来。

示例:

将二进制数 10110101 转换为十六进制:1、取最右边的四位:0101,对应十六进制数为 5。2、向左取四位:1011,对应十六进制数为 B。二进制数 10110101 转换为十六进制后为 B5。

三、八进制转换

1、八进制转换成二进制

1. 将八进制数的每一位分解,然后将其转换为对应的三位二进制数。• 八进制1对应二进制001• 八进制2对应二进制010• 八进制3对应二进制011• 八进制4对应二进制100• 八进制5对应二进制101• 八进制6对应二进制110• 八进制7对应二进制1112. 按照从左到右的顺序,将每位八进制数转换得到的二进制数连接起来。

示例:

将八进制数 125 转换为二进制:1、 第一位数字 1 对应的二进制是 001。
2、 第二位数字 2 对应的二进制是 010。
3、 第三位数字 5 对应的二进制是 011。
4、 得到001010011,通常会舍弃二进制前面的零所以,八进制数 125 转换为二进制后为 1010011。

2、八进制转换成十进制

1、按照权重从右到左依次乘以8的幂次方,第0位的权值是的次方,第1位的权值是的次方,第2位的权值是的次方,依次递增下去。2、将八进制数的每一位数字,乘以对应的权值,然后将结果相加,得到的值就是十进制的值。3、如果有小数部分,则从小数点开始,按照权重从左到右依次乘以8的幂次方。4、如果有负号,则将其应用于最终结果。

示例:

将八进制数123转换为十进制数:123
=1*8^2 + 2*8^1 + 3*8^0 
= 64 + 16 + 3 
= 83八进制数123的十进制表示为83。

3、八进制转换成十六进制


1、八进制转换成十六进制的过程需要先转换为十进制,然后再从十进制转换为十六进制。2、八进制直接转换成十六进制可以采用每三位一组转换为四位二进制,然后再将二进制转换为十六进制的方式。

示例: 

一、将八进制数123转换为十六进制:1. 先转换为十进制:123
=1*8^2 + 2*8^1 + 3*8^0 
= 64 + 16 + 3 
= 832. 再转换为十六进制:83对应的十六进制是53(因为165=80,31=3,所以是53)八进制数123对应的十六进制数是53。二、直接从八进制转到十六进制,也可以通过以下方式:1、将八进制数的每一位拆分,然后转换为对应的四位二进制数,最后将这些二进制数合并转换为十六进制。2、对于较大的数字,可以采用除以16取余法,逆序排列余数得到的即为十六进制数。八进制数75转换为十六进制:• 八进制的7对应二进制的111• 八进制的5对应二进制的101组合在一起是 111101,这是一个六位二进制数。由于十六进制是逢16进1,将其分为两组:111和101。• 111(二进制)= 7(十进制)= 7(十六进制)• 101(二进制)= 5(十进制)= 5(十六进制)八进制数75转换为十六进制数就是3D。

四、十六进制转换

1、十六进制转换二进制

遵循的原则是将十六进制数的每一位转换成相应的四位二进制数。1. 整数部分转换:• 从十六进制数的最右侧(最低位)开始,将每一位转换为对应的4位二进制数。• 十六进制数0-9分别对应二进制数0000到1001。• 十六进制数A-F分别对应二进制数1010到1111。2. 小数部分转换:• 如果有小数点后的小数部分,则同样处理,自左向右每四位一组转换为一个二进制位。

示例:

将十六进制数AB.1F转换成二进制:1、A 对应 1010
2、B 对应 1011
3、 .1 对应二进制小数点后的 0001
4、F 对应 1111十六进制数 AB.1F 转换成二进制是 10101011.00011111。

2、十六进制转换八进制

1. 首先将十六进制数转换为二进制数。2. 将得到的二进制数按照每三位一组进行分组(从右向左,不足三位的高位补零)。3. 分组后的每三位二进制数再转换成对应的八进制数。

示例:

1、将十六进制数 A3C7 转换成八进制,首先转为二进制:• 十六进制 A 对应二进制 1010• 十六进制 3 对应二进制 0011• 十六进制 C 对应二进制 1100• 十六进制 7 对应二进制 0111合并后得到二进制数:10100011110001112、然后按每三位一组划分:• 第一组:101 -> 八进制 5• 第二组:001 -> 八进制 1• 第三组:110 -> 八进制 6• 第四组:000 -> 八进制 0• 第五组:111 -> 八进制 7十六进制数 A3C7 转换为八进制数是 51607。

3、十六进制转换十进制

 1. 将十六进制数的每一位乘以相应的权重(该位权是 16 的幂次)。2. 从右向左(对于整数部分)或从左向右(对于小数部分)进行计算。3. 将所有结果相加得到最终的十进制数。

示例:

将十六进制数 A3C7 转换成十进制:1、最右侧的数字 7 在十六进制中代表的数值是 (7*16^0)。2、向左第二位是 C,在十六进制中代表的数值是 (12*16^1)。3、再向左一位是 3,对应的数值是 (3*16^2)。4、最左边是 A,在十六进制中代表的数值是 (10*16^3)。A3C7= 10*16^3 + 3*16^2 + 2*16^1 + 7*16^0= 10*4096 + 3*256 + 12*16 + 7*1= 40960 + 768 + 192 + 7= 41927十六进制数 A3C7 转换为十进制数是 41927。

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

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

相关文章

宝塔面板安装mysql出现最低内存和最低CPU限制的解决方案

当我们服务器配置不高时,在宝塔面板中安装mysql可能会出现:“至少需要2个CPU核心才能安装”或者“至少需要XXX内存才能安装”。这是宝塔面板为了保证服务器的运行,宝塔面板对于低内存和低CPU的服务器,安装mysql时有最低内存和CPU核…

Linux mail自动推送邮件脚本+一键发送邮件脚本

文章目录 说明配置mail安装mail配置mail自动推送邮件脚本定时任务mail_push.shmessage.info效果预览一键发送邮件脚本mail_sent.sh效果预览说明 自动推送邮件脚本:每日定时推送提前定义好的文本数据,以作提醒 mail_push.shmessage.info一键发送邮件脚本:交互式输入邮件主题和…

代价函数详解

代价函数详解 大家好,我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!在计算机科学和机器学习领域中,代价函数(Cost Function)是一个至关…

Spring Boot中WebMvcConfig配置详解及示例

引言: 在Spring Boot项目中,我们经常需要对Web MVC进行配置,以满足项目的特定需求。例如,设置静态资源映射、自定义消息转换器或生成Swagger接口文档等。今天,我们将详细探讨如何在Spring Boot中通过WebMvcConfig类进行…

C#线程基础(线程启动和停止)

目录 一、关于线程 二、示例 三、生成效果 一、关于线程 在使用多线程前要先引用命名空间System.Threading,引用命名空间后就可以在需要的地方方便地创建并使用线程。 创建线程对象的构造方法中使用了ThreadStart()委托,当线程开始执行时&#xff0c…

JSON 的常见格式总结

目录 1、JSON 数值 2、JSON 字符串 3、JSON 数组 4、JSON 对象 5、JSON 对象为数组 1、JSON 数值 { “age”:20 } 2、JSON 字符串 { “name”:”cyk” } 3、JSON 数组 { “hobay”:[“dd”,”foot”,”basket”] } 4、JSON 对象 { “chongwu”: { “name”:”dog…

LeetCode第32题 : 最长有效括号

题目介绍 给你一个只包含 ( 和 ) 的字符串,找出最长有效(格式正确且连续)括号子串的长度。 示例 1: 输入:s "(()" 输出:2 解释:最长有效括号子串是 "()" 示例 2&#xf…

springCould中的Hystrix【上】-从小白开始【7】

目录 1.简单介绍❤️❤️❤️ 2.主要功能 ❤️❤️❤️ 3.正确案例❤️❤️❤️ 4.使用jmeter压测 ❤️❤️❤️ 5.建模块 80❤️❤️❤️ 6.如何解决上面问题 ❤️❤️❤️ 7.对8001进行服务降级❤️❤️❤️ 8.对80进行服务降级 ❤️❤️❤️ 9.通用降级方法❤️❤️…

1.2 day2 IO进程线程

使用fread、fwrite完成文件拷贝 #include <myhead.h> int main(int argc, const char *argv[]) {if(argc!3){printf("参数有误");}//定义并以只写的方式打开两个文件FILE *fpNULL;FILE *cfpNULL;if((fpfopen(argv[1],"w"))NULL){perror("fopen…

学习Vue单文件组件总结

今天主要学习了组件实例对象的一个重要内置关系和单文件组件。先说一下实例对象的内置关系&#xff0c;在这里要对JS中的原型链有一定的基础&#xff0c;Vue构造函数的prototype原型指向的是Vue的原型对象&#xff0c;new出来的Vue实例对__proto__同样指向的是Vue的原型对象&am…

Python日期和时间详解

Python 日期和时间 Python 程序能用很多方式处理日期和时间&#xff0c;转换日期格式是一个常见的功能。 Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间。 时间间隔是以秒为单位的浮点小数。 每个时间戳都以自从1970年1月1日午夜&#xff08;历元&…

harbor自建san证书

1.创建证书存放目录 mkdir -p /opt/harbor/harbor/cert && cd /opt/harbor/harbor/cert 2.拷贝openssl配置文件 cp /etc/pki/tls/openssl.cnf /opt/harbor/harbor/cert 3.编辑拷贝出来的openssl配置文件 vi openssl.cnf [ CA_default ] copy_extensions copy …

异地环控设备如何远程维护?贝锐蒲公英解决远程互联难题

青岛某企业致力于孵化设备、养禽设备和养猪设备的研发、生产和服务&#xff0c;历经三十多年发展&#xff0c;目前已成长为行业主要的养殖装备及工程服务提供商&#xff0c;产品覆盖养殖产业链中绝大多数环节&#xff0c;涉及自动化设备、环控设备、整体解决方案等。 在实际应用…

基于Rangenet Lib的自动驾驶LiDAR点云语义分割与可视化

这段代码是一个C程序&#xff0c;用于处理来自KITTI数据集的激光雷达&#xff08;LiDAR&#xff09;扫描数据。程序主要实现以下功能&#xff1a; 1. **读取和解析命令行参数**&#xff1a;使用Boost库中的program_options模块来定义和解析命令行参数。这包括扫描文件路径、模型…

docker安装postgresql15或者PG15

1. 查询版本 docker search postgresql docker pull postgres:15.3 # 也可以拉取其他版本2.运行容器并挂载数据卷 mkdir -p /data/postgresql docker run --name postgres \--restartalways \-e POSTGRES_PASSWORDpostgresql \-p 5433:5432 \-v /data/postgresql:/var/lib/p…

使用函数求余弦函数的近似值

本题要求实现一个函数&#xff0c;用下列公式求cos(x)的近似值&#xff0c;精确到最后一项的绝对值小于e&#xff1a; cos(x)x0/0!−x2/2!x4/4!−x6/6!⋯ 本题&#xff1a;需注意x的0次方为1,0的阶乘为1 #include <stdio.h> #include <math.h> double funcos(…

计算机网络-以太网交换基础

一、网络设备的演变 最初的网络在两台设备间使用传输介质如网线等进行连接就可以进行通信。但是随着数据的传输需求&#xff0c;多个设备需要进行数据通信时就需要另外的设备进行网络互联&#xff0c;并且随着网络传输的需求不断更新升级。从一开始的两台设备互联到企业部门内部…

【LeetCode 面试经典150题】26. Remove Duplicates from Sorted Array 在有序数组中移除重复元素

26. Remove Duplicates from Sorted Array 题目大意 Given an integer array nums sorted in non-decreasing order, remove the duplicates in-place such that each unique element appears only once. The relative order of the elements should be kept the same. Then …

Nginx多ip部署多站点

目录 1.修改网卡配置信息 2.修改主要配置文件nginx.conf 1.修改网卡配置信息 1)来到网卡配置文件存放目录下 cd /etc/sysconfig/network-scripts/ 2)对 ifcfg-ens33 文件进行配置修改前先进行备份 cp ifcfg-ens33 ifcfg-ens33.default 3)先修改成最小配置&#xff0c;使用 d…

MySQL运维实战(2.1) 登录失败次数太多导致主机被锁住的问题处理

作者&#xff1a;俊达 引言 当我们在使用 MySQL 时&#xff0c;可能遇到过如下类似的错误&#xff1a; Host IP is blocked because of many connection errors; unblock with mysqladmin flush-hosts该错误意味着 mysqld 已从给定主机收到许多中断的连接请求。并且数量超过…