【进制转换】二进制,十进制,八进制,16进制

2023-11-14

1、二进制与十进制相互转换

二进制转为十进制

0000 0110转换为10进制:
(二进制里面没有"个位、十位、百位",只能通过从左到右或者从右到左第几位来描述),

从右往左开始, 第一位是0,进制的基数是2,那么就是0 * 20 ,第二位是1,就是1 * 21 ,
第三位是1,就是1 * 22,第四位及以上都是0了,那么不必再计算,于是0000 0110转换成十进制是0 * 20+1 * 21+1 * 22=6;0000 0101转换成十进制是5。

八进制是利用数位上的值乘以进制基数(8)的幂次方来转换,十六进制是利用数位上的值乘以进制基数(16)的幂次方来转换

1)十进制转为二进制

1.十进制48转换成二进制
在这里插入图片描述
因为是转换成二进制。所以用48除以进制基数2,直到结果为1(为什么说直到结果为1,因为不管任何数,按照上面的演算方式不断除以2,最后的结果一定是1),然后将结果的1放在最前面,后面依次写上每一步的余数,注意,这里每一步的余数是倒序(也就是从下往上排列),也就是说排在结果1后面的余数是计算过程3/2的余数,然后是计算过程6/2的的余数…所以最后得出十进制数48的二进制表示是110000。如果是byte类型,需要在前面补0,直至8位:0011 0000,如果是int类型就是:0000 0000 0000 0000 0000 0000 0011 0000。

2.十进制550转换成二进制:
在这里插入图片描述
结果为:10 0010 0110,如果是int类型,则补齐32位,结果是:0000 0000 0000 0000 0000 0010 0010 0110。
实际上,二进制为什么需要从最后的余数开始,你们仔细思考一下:是不是和二进制转换成十进制的时候,进制基数2的幂次方是从0开始的有关。
还有一个问题需要强调,就是为什么上面表格中的奇数除以2,不会出现浮点数,这是因为,上面的除法都是整数类型,不涉及浮点数类型,所以,整数类型的除法结果都是整数,直接舍弃了小数部分,所以31除以2,结果是15,而不会是15.5。

2、八进制与16进制表示

八进制在编程语言范围内没有固定的使用情形,它的基数是8,总共有8个数字符号(0,1,2,3,4,5,6,7),八进制的最大数码是基数减1,就是7,最小数码是0,如果你要确切表示一个数是八进制的,可以这么表示(12565)O或者是(12565)Q,在C和C++中八进制的表示是额外在数值前面加一个0,比如123是十进制,而0123就是八进制。

十六进制在编程语言范围内也没有固定的使用情形(计算机网络中最新的IPv6地址使用的就是十六进制,计算机系统的注册表也会用到),它的基数是16,总共有16个数字符号(0,1,2,3,4,5,6,7,8,9,A[表示10],B[表示11],C[表示12],D[表示13],E[表示14],F[表示15]),因为0-9不够用,所以就借了6个字母,字母不区分大小写,对比前面几种进制,只要一个数的表示中出现了字母,就一定是16进制。十六进制的最大数码也是基数减1,就是15(F),最小数码也是0,如果你需要确切表示一个数是十六进制的,可以这么表示(56BBA)H,在C和C++中,十六进制的表示是额外在数值前面加一个0x,比如123是十进制,0x123是十六进制。

2)1.八进制转换成十进制 : 十进制48转换位八进制
在这里插入图片描述
结果为60,这里需要特别注意的是,千万不要受二进制的影响,非要得到结果为1,这里不可能为1,因为进制基数变成了8,所以,48/8得出的结果是6,已经比进制基数8更小了,就没有再计算下去的必要(因为再计算下去就是6/8,结果是0了),于是从结果6开始,倒序排列各步骤的余数,得到的结果就是60(10进制转换成8进制的时候,一旦得到的结果比8更小,则说明是最后一步了)。

2.十进制360转换为八进制表示:

在这里插入图片描述
结果5比进制基数8小,所以结果就是550。

3.十六进制转换为十进制:十进制48转换位十六进制的表示:

在这里插入图片描述
十六进制与8进制一样,只要得到的结果比进制基数更小,则停止运算,所以结果是30。

4.十进制100转换位十六进制的表示:
在这里插入图片描述
结果为:65。

3、二、八、十六进制间的相互转换

二进制转换成八进制

只需要将二进制的表示从右往左开始,每三位二进制数为1组 ,分到最后如果不足3位,那么剩下多少位就是多少位,再用每组的二进制的每一位数从右往左依次乘以20、21、22,然后相加,得出一组的结果,最后将所有组的结果相连,得出最终的结果(这里注意了,二进制转换为八进制的时候是分组了,并且最后是将每组的结果相连,而不是相加)。

二进制(0011 0101)B转换为八进制
表示是什么结果:
首先,将二进制从右至左进行分组:
分别是 第一组:101 第二组:011 第三组:00。实际上,第三组没意义了,因为都是0,我们来关注前两组
第一组计算过程是:1 * 20+0 * 21+1 * 22=5;
第二组计算过程是:0 * 20+1 * 21+1 * 22=6;
所以最后的结果是65。也就是用6和5直接相连,而不是相加,这里还要注意一下相连的顺序问题,是6–5的方向。

二进制转换为十六进制

二进制转换为十六进制就是将二进制每四位二进制为一组,其他与八进制转换为二进制一样。

八进制转换为二进制

只需要将八进制的每一个数用三位二进制表示,然后相连既可以。

十六进制转换为二进制

只要需要将十六进制的每一个数用四位二进制表示,然后相连即可。

八进制转换为十六进制

不要以为八和十六之间存在倍数2的关系就有什么捷径,实际上没有,需要通过二进制中转一下。
所以需要先将八进制转换成二进制,在转换成十六进制。

十六进制转换成八进制

需要将十六进制转换成二进制,再将二进制转换成八进制。

(1)原码是符号位加上真值的绝对值,即用第一位表示符号位,其余位表示值。

(2)正数的反码是其本身。负数的反码是在原码的基础上,符号位不变,其余按位取反。

(3)正数的补码是其本身。负数的补码是在原码的基础上,符号位不变,其余按位取反,最后加1。

(4)计算机进行符号运算时,会以补码表示,符号位和数字位会一起参与运算。

a-b实际转换为[a-b]补=[a]补+[-b]补

a为1111(后面60个0),1开头,所以为一个负数;补码为1001(后面60个0)

b为0111(后面60个1),0开头,所以为一个正数;补码为其本身。

-b为1111(后面60个1),补码为1000(后面59个0,最后有个1)

所以1001(后面60个0) + 1000(后面59个0.最后有个1) = 0001(后面59个0,最后有个1),发生了溢出,比如采用双高位判别法处理溢出,则补码1001(后面59个0,最后有个1)转换为原码为1110(后面60个1),即-(7 *2的60次方+1)=-(2的62次方+2的61次方+2的60次方 + 1)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【进制转换】二进制,十进制,八进制,16进制 的相关文章

  • 作为计算机专业学生,说一说校招

    首先要说的是 作为计算机相关专业的一名学生 确实非常庆幸当年选择了这个专业 如今互联网大热 是因为和前十年的土木一样 世界特别是中国正处于互联网改变世界的浪潮当中 人类世界一共有三次工业革命 互联网这次就是第四次工业革命 可以想象一个新兴的
  • THE、QS等四大世界大学排名对比 计算机专业究竟哪家强?

    泰晤士高等教育世界大学排名 QS世界大学排名 USNews世界大学排名 上海软科世界大学学术排名是公认的四大权威世界大学排名 今年9月 英国 泰晤士高等教育 Times Higher Education 简称THE 发布了2020世界大学排
  • 【推理引擎】ONNXRuntime 的架构设计

    Python微信订餐小程序课程视频 https edu csdn net course detail 36074 Python实战量化交易理财系统 https edu csdn net course detail 35475 ONNXRun
  • (转载)Twain 学习纪录

    一 TWAIN的文件组成 TWAIN共包括4个二进制文件 如果要使用该接口 就必须要保证他们被成功地安装在本地计算机上 文 件 名 说 明 TWAIN 32 DLL 32位应用程序的支持文件 32位程序使用TWAIN通讯必须使用该文件 TW
  • 【进制转换】二进制,十进制,八进制,16进制

    1 二进制与十进制相互转换 二进制转为十进制 0000 0110转换为10进制 二进制里面没有 个位 十位 百位 只能通过从左到右或者从右到左第几位来描述 从右往左开始 第一位是0 进制的基数是2 那么就是0 20 第二位是1 就是1 21
  • 【计算机网络】I/O多路转接之poll

    不同与select使用三个位图来表示三个fdset的方式 poll使用一个 pollfd的指针实现 pollfd结构包含了要监视的event和发生的event 不再使用select 参数 值 传递的方式 同时 pollfd并没有最大数量限制
  • chatgpt赋能python:Python创建5×5矩阵(Matrix)教程

    Python创建5 5矩阵 Matrix 教程 Python是一种广泛使用的高级编程语言 其具有简单易用 可读性强 支持多种编程范式等特点 已经成为数据分析 科学计算与机器学习等领域必备的编程工具之一 在Python的诸多应用场景中 创建矩
  • 2022中山大学计算机技术专硕考研初试、复试经验帖

    2022年中山大学计算机技术专硕考研初试 复试经验帖 个人简介 推荐几个我自己感觉对考研非常有帮助的小助手吧 可以帮助节省时间 考研时间规划总览 初试篇 数学 英语 政治 408 复试篇 如果觉得有帮助的话可以点个收藏后续会修改和增加内容
  • 如何轻松实现内网穿透?异地办公?调试微信小程序?

    步骤很简单 只需三步 1 从 https www i996 me 获取获取你的公网域名和访问Token 项目托管在 https github com bugfan i996 2 在Max Linux 环境下 Windows类似 打开一个终端
  • chatgpt赋能python:Python中如何取出列表中的数字

    Python中如何取出列表中的数字 在Python编程中 经常需要从一个包含数字和其他类型数据的列表中仅取出数字元素 这可以通过几种不同的方法来实现 下面将介绍其中常用的几种方法 1 使用循环遍历 第一种方法是使用循环遍历列表 并检查每个元
  • chatgpt赋能python:Pythontomorrow:未来十年最重要的编程语言

    Python tomorrow 未来十年最重要的编程语言 Python 是一种高级 通用 解释型 面向对象的动态编程语言 自 1991 年诞生以来 Python 已成为了世界上最流行的编程语言之一 然而 Python 仍没有达到顶峰 未来的
  • 新手如何学习网络安全?

    每天都有新闻报道描述着新技术对人们的生活和工作方式带来的巨大乃至压倒性影响 与此同时有关网络攻击和数据泄露的头条新闻也是日益频繁 攻击者可谓无处不在 企业外部充斥着黑客 有组织的犯罪团体以及民族国家网络间谍 他们的能力和蛮横程度正日渐增长
  • chatgpt赋能Python-python2_7如何安装

    Python 2 7如何安装 Python 2 7是一个广泛使用的Python版本 其可以在Windows和Linux上安装 本文将介绍Python 2 7如何安装 并提供相关步骤和指南 下载Python 2 7 首先 您需要下载Pytho
  • HCNP Routing&Switching之MAC安全

    优质资源分享 学习路线指引 点击解锁 知识定位 人群定位 Python实战微信订餐小程序 进阶级 本课程是python flask 微信小程序的完美结合 从项目搭建到腾讯云部署上线 打造一个全栈订餐系统 Python量化交易实战 入门级 手
  • chatgpt赋能python:Python如何优化中文SEO

    Python如何优化中文SEO Python 作为一种流行的编程语言 可以用来开发各种不同的应用程序 当涉及到网络营销和搜索引擎优化 SEO 时 Python的功能也非常有用 在本篇文章中 我们将介绍如何使用Python来优化中文SEO 以
  • 【Python】赋值、浅拷贝与深拷贝(附图解)

    Python 赋值 浅拷贝与深拷贝 附图解 Python的变量 可变对象与不可变对象 可变对象 不可变对象 赋值 浅拷贝与深拷贝的区别 可变对象的赋值 浅拷贝与深拷贝 赋值 浅拷贝 深拷贝 不可变对象的赋值 浅拷贝与深拷贝 结论 Pytho
  • 【Vue】从0-1全系列Vue教程带你启航!

    hello 我是小索奇 Vue js 已经备好文章 预更新哈 涵盖 Vue2 和 Vue3 涵盖代码示例 拓展内容 图解 疑难解答 让大家用最通俗的方式来学会 Vue 本系列会考虑到新手 会由浅入深 即使你是老玩家 也可以收藏备用 其中有很
  • chatgpt赋能python:Python打包发布完整指南:从基础知识到实践操作

    Python打包发布完整指南 从基础知识到实践操作 作为一名有着十年python编程经验的工程师 我清楚地知道打包发布Python应用程序是非常重要的 它能帮助我们方便地分享和分发程序 并且能够让其他人通过使用我们的程序来提高自己的工作效率
  • 多媒体开发计算机颜色相关知识

    颜色模式 颜色模式 颜色模型和颜色空间 计算机中的颜色格式 常用的颜色模型分类 RGB颜色模型 介绍 RGB模型的颜色空间 RGB555 RGB565 RGB24 RGB32 FFMPEG中定义的RGB色彩空间 显示器的颜色空间
  • 300万的人才缺口,为什么网络安全成为2024中职春招最热门的专业

    前言 随着互联网的普及和信息技术的飞速发展 网络安全问题日益凸显 网络安全产业也因此迎来了前所未有的发展机遇 根据 2023年中国网络安全产业人才发展报告 显示 我国网络安全产业人才市场供需失衡 实战型人才短缺尤为突出 在这样的背景下 中职

随机推荐

  • poll和epoll及实现epoll网络服务器

    I O多路转接之poll poll函数原型 参数解释 参数 解释 fds 是 个poll函数监听的结构列表 nfds 表示fds数组的长度 timeout 表示poll函数的超时时间 单位是毫秒 ms pollfd结构 那么fds是一个什么
  • 基于嵌入式Qt的输入法syszuxpinyin自动弹出软件盘的问题

    移植好的syszuxpinyin输入法能正常的检测到控件焦点并自动弹出软键盘 当使用默认的QLineEdit控件时就有了一些小小的问题 问题一 QLineEditt在默认情况下会自动出现焦点 从而导致一进入界面就弹出软键盘 但是我们需要点击
  • springboot打jar包供第三方使用(以回调为例)

    前言 有时我们需要封装功能类库供第三方使用 这时候打包和我们平时发布项目有所不同 假设我们现在要对外提供一个计算功能 使用者只需要传入计算参数就能实现结果异步返回 最后还得对jar包进行混淆 目录 前言 1 编写回调函数类 2 直接打JAR
  • python实现画雪景(二级python书中实例)

    from turtle import from random import def snow hideturtle pensize 2 for i in range 100 r g b random random random pencol
  • 【opencv】linux下生成libopencv_world.so

    一个项目需要用到linux下libopencv world so 按照网上诸多 linux下安装opencv 教程 发现都没有生成libopencv world so的方法 然后偶然间搜到了window编译opencv方法中可以通过开启BU
  • 用java连接Oracle 11g

    了解一下JDBC JDBC 是连接数据库的程序模块 由JSP应用程序 JDBC API JDBC DriverManager JDBC驱动管理器 JDBC驱动程序和数据库几部分组成 java应用程序通过JDBC API访问JDBC驱动管理器
  • Python调用多媒体定时器实现高精度定时

    自己在使用Python实现周期执行的任务时 通常会用time sleep 函数实现 但该方法能实现的最小周期只有30ms左右 且定时不够精确 大概有 5ms左右的跳动 该方法可满足绝大多数应用场景 但对某些实时性要求较高的应用场景则不适用
  • input 上传文件 判断重名限制文件个数

    原生文件上传 accept快捷上传 xls xlsx格式 文件上传表单的提交方式必须是 post 编码类型必须为 enctype multipart form data 上传多个文件属性 multiple
  • Mac Idea使用技巧

    1 IDEA自动生成serialVersionUID Inspections gt serialzable class without serialVersionUID 勾上 在实现了Serializable接口的类上使用alt enter
  • xzp 线刷 android 10,索尼Xperia XZ刷机教程_Sony XZ强刷官方FTF系统包

    在这里来说一下有关索尼Xperia XZ的强刷教程了 这个强刷教程主要就是针对官方的FTF格式的强刷包来操作的 因为之前看到有机友把官方的rom强刷包下载下来之后不知道如何刷入 所以在这里整理了一下详细的强刷教程供大家参考一下了 这个也不复
  • Property or method “scope“ is not defined

    VUE报错 Property or method scope is not defined 是因为缺失了 slot scope scope 造成组件认为 scope 未定义 加上去就行
  • 内网离线安装 Visual Studio 2022 及插件

    一 互联网环境下使用命令行创建本地缓存 首先下载小型引导程序文件 然后使用命令行创建本地缓存 缓存创建后 可使用它来安装 Visual Studio 一 下载 Visual Studio 引导程序 1 通过互联网电脑下载最新当前频道版本的
  • 对偶上升实例-MATLAB代码

    一 本文概述 本文给出对偶上升法 dual ascent 求解凸优化问题最优解的代码实例 如果您觉得对您有帮助 请点个赞 加个收藏 谢谢 二 简单实例 本文以下述实例为例 撰写对偶上升法的迭代步骤 并给出最终可运行的MATLAB代码 以便大
  • Yolov5配置傻瓜教程

    软硬件环境 Win10 anaconda python3 7 gtx 1660ti cuda 10 1 pytorch 1 7 YOLOv5 介绍 2020年6月25日 Ultralytics发布了YOLOV5 的第一个正式版本 其性能与Y
  • #超级系统详细#搭建深度学习环境(python3.8+cuda10.2+tensorflow2.3)

    写在前面 1 搭建环境前最重要的是先清楚各个版本之间的配对情况 官网版本匹配信息 tensorflow与python https tensorflow google cn install source windows 大致如下 cuda9
  • 【python】将自定义常用的一些函数封装成可以直接调用的模块方法

    将常用一些的函数封装成可以直接调用的模块方法 1 背景 2 具体步骤 3 扩展 1 背景 在实际的操作过程中 经常会用到一个功能 如果每次编写代码的时候都进行重新编写或者打开已经编写好的函数进行复制粘贴 这样就显得很麻烦 有没有什么方法可以
  • Different Subsets For All Tuples (经典,贪心考虑一个子序列是否出现在原序列中)

    https codeforces com problemset problem 660 E include
  • 基础算法题 —— 说反话-加强版(字符串截取)

    说反话 加强版 给定一句英语 要求你编写程序 将句中所有单词的顺序颠倒输出 输入格式 测试输入包含一个测试用例 在一行内给出总长度不超过500 000的字符串 字符串由若干单词和若干空格组成 其中单词是由英文字母 大小写有区分 组成的字符串
  • 摄像头分辨率与码流对照表

    https support dahuatech com tools onlineTools
  • 【进制转换】二进制,十进制,八进制,16进制

    1 二进制与十进制相互转换 二进制转为十进制 0000 0110转换为10进制 二进制里面没有 个位 十位 百位 只能通过从左到右或者从右到左第几位来描述 从右往左开始 第一位是0 进制的基数是2 那么就是0 20 第二位是1 就是1 21