数据表示(二进制、进制转换、补码计算)

目录

    • 1.进制
    • 2.进制转换
      • 2.1 R进制转十进制
      • 2.2 十进制转R进制
      • 2.3 m进制转n进制
        • 方法1:十进制中转
        • 方法2:直接转化
    • 3.进制计算
      • 3.1 机器数
      • 3.2 编码方式(原码、反码、补码、移码)
      • 3.3 表示范围
        • 定点整数
        • 定点小数
      • 3.4 定点表示法
    • 4.浮点数
      • 4.1 浮点数的表示
      • 4.2 浮点数的运算
      • 4.3 尾数的表示规格化

1.进制

进制 是数字表示法的一种形式,用于描述一个数在位置“上”的取值范围,不同进制代表着不同进位的规则和不同进制位数的数量。

我们常见的十进制是一种基数为 10 的数字系统,它使用 0 ~ 9 这十个数字来表示数值,例如 123 就是由 1、2、3 这三个数字组成的十进制数。

而在计算机科学中,最常用的是二进制,也就是使用 0 和 1 两个数字来表示数值,例如 1011 就是由 1、0、1、1 这四个数字组成的二进制数。

当然,除了十进制和二进制之外,还有八进制十六进制等其他进制形式,它们在不同领域有不同的应用场景。理解进制的概念和运算规则是我们深入理解计算机科学的基础之一,也是实际编程中不可或缺的基本技能。

注意: 二进制符号为 0b,一般表示为 0b0011,十六进制符号为 0xH,可表示为 0x18F18FH.

补充:生活中的进制有很多,比如秒和分钟就是60进制,60秒进1分钟,60分钟进1小时。

2.进制转换

2.1 R进制转十进制

方法:

  • 位权展开法:用 R 进制数的每一位乘以 R 的 n 次方,n 是变量,从 R 进制的整数最低位开始,依次为:0,1,2,3……累加。

举例:

  • 6 进制数 5043 转十进制。
  • 5043=5*63+0*62+4*61+3*60=5*216+4*6+3*1=1080+27=1107

2.2 十进制转R进制

方法:

  • 除以 R 倒取余数:用十进制整数除以 R,记录每次取的余数,若商不为 0,则继续除以 R,直到商为 0,而后将所有计算取得的余数根据先后顺序,从右至左排列,即为转换后的 R 进制整数。

举例:

  • 问:十进制数200转换为6进制。
  • 200➗6=33……2,商为33,余数为2
  • 33➗6=5……3,商为5,余数为3
  • 5➗6=0……5,商为0,余数为5
  • 商为0,停止计算,根据计算先后顺序,从右至左排列为:532

2.3 m进制转n进制

方法1:十进制中转

  • 先将 m 进制转化为十进制数,再将十进制数转化为 n 进制数,中间需要通过十进制进行中转。

方法2:直接转化

  • 适用于倍数进制之间的转化,以倍数为单位切割较小进制的位数,逐个单位转化。

示例①:二进制转八进制

方法:

  • 每3位二进制转换为1位八进制数,二进制数位个数不是3的倍数,则在前面补0(原则是数值不变)。

举例:

  • 二进制数01101转八进制。
  • 长度为5位,不是3的倍数,前面补0,为:001 101
  • 每3位二进制转换为1位八进制,转换后为:15

示例②:二进制转十六进制:

方法:

  • 每4位二进制转换为1位十六进制数,二进制数位个数不是4的倍数,则在前面补0(原则是数值不变)

举例:

  • 二进制数101101转换为十六进制。
  • 长度为6位,不是4的倍数,前面补两个0,为:0010 1101
  • 每4位二进制转换为1位十六进制数:2D

3.进制计算

3.1 机器数

机器数:各种数值在计算机中表示的形式。

  • 特点:使用二进制计数制,数的符号用0和1表示,小数点则隐含,不占位置。
  • 根据有无符号位,分为:
    • 无符号数表示正数,没有符号位
    • 带符号数最高位为符号位,正数符号位为0,负数符号位为1
  • 真值:机器数对应的实际数值。

3.2 编码方式(原码、反码、补码、移码)

带符号数有下列编码方式,当真值为 -45 时:

原码:一个数的正常二进制表示,最高位表示符号,数值0的原码有两种形式:+0(0 0000000)和 -0(1 0000000)。-45对应原码为10101101

反码正数的反码即原码;负数的反码是在原码的基础上,除符号位外,其他各位按位取反。数值0的反码也有两种形式:+0(0 0000000)和 -0(1 0000000)。-45对应反码为11010010

补码正数的补码即原码;负数的补码是在原码的基础上,除符号位外,其他各位按位取反,然后末位+1,若有进位则产生进位。因此数值0的补码只有一种形式 +0 = -0 = 0 0000000。-45对应补码为11010011

移码:用作浮点运算的阶码,无论正数负数,都是将该原码的补码的首位(符号位)取反得到移码。-45对应移码为01010011

3.3 表示范围

  • 机器字长为 n 时,各种码制表示的带符号数的取值范围(差别在于 0 的表示 )。

在这里插入图片描述

定点整数

  • 1.指数-实际字长:n=1(符号位)+(n-1)(数值位)
    • 因此只有n-1个位数可用于表示数值
  • 2.底数-进制:2
  • 3.可表示的数值数量:2^(n-1)
  • 4.可表示的取值范围:2^(n-1)-1
  • 5.原码和反码被-0占用,因此负数跟正数的取值范围一样
  • 6.补码和移码没有被-0占用,因此负数可以比正数多表示一个。

定点小数

  • 定点整数取值范围整体/2^(n-1)

3.4 定点表示法

定点表示法:根据小数点位置,分为纯小数和纯整数两种,其中小数点不占存储位,而是按照以下约定:

  • 纯小数:约定小数点的位置在机器数的最高数值位之前。
  • 纯整数:约定小数点的位置在机器数的最低数值位之后。

4.浮点数

浮点数:表示方法为N=F*2^E,其中E称为阶码,F称为尾数;类似于十进制的科学计数法,如85.125=0.85125*102,二进制如101.011=0.101011*23

4.1 浮点数的表示

在浮点数的表示中,阶码为带符号的纯整数,尾数为带符号的纯小数,要注意符号占最高位(正数0负数1),其表示格式如下:

在这里插入图片描述

注意: 一个浮点数的表示方法不是唯一的,浮点数所能表示的数值范围由阶码确定,所表示的数值精度由尾数确定。

4.2 浮点数的运算

对阶:使用两个数的阶码相同,小阶向大阶看齐,较小阶码增加几位,尾数就后移几位。

补充:小阶向大阶看齐,尾数右移丢弃末位,精度变化较小。

位数计算:相加,若是减运算,则加负数。

结果规格化:即尾数表示规格化,带符号尾数转换为1.0XXXX或0.1XXXX。

4.3 尾数的表示规格化

尾数的表示规格化:带符号尾数的补码必须为1.0XXXX(负数)或者0.1XXXX(正数),其中X可为0或1。

整理完毕,完结撒花~ 🌻

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python之网络编程

一、操作系统基础 操作系统:(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。 注&a…

代码随想录算法训练营day53 | 1143.最长公共子序列,1035.不相交的线,53. 最大子序和 动态规划

代码随想录算法训练营day53 | 1143.最长公共子序列,1035.不相交的线,53. 最大子序和 动态规划 1143.最长公共子序列解法一:动态规划 1035.不相交的线解法一:动态规划 53. 最大子序和 动态规划解法一:动态规划解法二&am…

机智云的离线语音识别模组,让家电变得更加智能和便捷

随着人们对智能化生活的需求不断增加,离线语音模组越来越受到欢迎。它可以为家庭、工作和娱乐提供更加智能和便捷的服务,例如通过语音指令控制家居设备、查询天气信息、播放音乐等。 “小智同学,打开灯光” “调到最亮” “正转一档” 人工智…

websocket在分布式场景的应用方案

websocket简介 WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。它可以在客户端和服务器之间建立持久连接,使得服务器可以主动向客户端推送数据,而不需要客户端不断地向服务器发送请求。 WebSocket 协议的优点包括: 实时性&#x…

MySql MVCC 详解

注意以下操作都是以InnoDB引擎为操作基准。 一,前置知识准备 1,MVCC简介 MVCC 是多版本并发控制(Multiversion Concurrency Control)的缩写。它是一种数据库事务管理技术,用于解决并发访问数据库的问题。MVCC 通过创…

OpenMMLab-AI实战营第二期——2.人体关键点检测与MMPose

文章目录 1. 人体姿态估计的介绍和应用2-1. 2D姿态估计概述2.1 任务描述2.2 基于回归2.3 基于热力图2.3.1 从数据标注生成热力图(高斯函数)2.3.2 使用热力图训练模型2.3.3 从热力图还原关键点 2.4 自顶向下2.5 自底向上2.6 单阶段方法 2-2. 2D姿态估计详…

STM32单片机(三)第二节:GPIO输出练习(LED闪烁、LED流水灯、蜂鸣器)

❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要…

IIC总线协议的死锁问题

目录 1. IIC的特性 2. IIC死锁问题分析 3. 常见的IIC死锁问题解决方法 1. IIC的特性 IIC协议是一个允许一主多从通信的协议,只能用于短距离通信,并且只需要两根信号线来交换信息。 IIC的两根信号是SCL和SDA,SCL是时钟信号线,S…

javascript基础六:说说你对闭包的理解?闭包使用场景?

一、是什么 一个函数和对其周围状态(lexical environment,词法环境)的引用捆绑在一起(或者说函数被引用包围),这样的组合就是闭包(closure) 也就是说,闭包让你可以在一个…

CDN加速在网站建设中的应用

近年来,随着互联网技术的不断发展,互联网行业迎来了井喷式发展,各类网站如雨后春笋般不断涌现,网站数量迅速增长,但与此同时也导致网站响应速度慢、访问不流畅等问题。因此,如何优化网站的性能、提高网站的…

【算法】简单讲解如何使用两个栈实现一个队列

文章目录 什么是栈和队列?设计思路代码实现 什么是栈和队列? 栈和队列其实大家基本都知道是什么,或者说,最基本的,他们的特性我们是知道的。 栈是一种FILO先进后出的数据结构,队列是一种FIFO先进先出的数据…

IP-Guard客户端上插入加密盘时提示格式化,能否禁止该弹窗?

客户端上插入加密盘时提示格式化,能否禁止该弹窗? 1、当Shell Hardware Detection服务启动时,操作系统检测硬件的速度要快于客户端,而此时操作系统是不能识别加密后的移动盘的,因此认为加密盘异常,提示需要格式化,策略-客户端配置,选择禁止windows7播放功能。配置后不…

华为OD机试题【字符统计】【2023 B卷 100分】

文章目录 🎯 前言🎯 题目描述🎯 解题思路📙 Python代码实现📗 Java代码实现📘 C语言代码实现 🎯 前言 🏆 《华为机试真题》专栏含2023年牛客网面经、华为面经试题、华为OD机试真题最…

【快应用】多语言适配案例

【关键词】 多语言,$t 【问题背景】 快应用平台的能力会覆盖多个国家地区,平台支持多语言的能力后,可以让一个快应同时支持多个语言版本的切换,开发者无需开发多个不同语言的源码项目,避免给项目维护带来困难。使用系…

《Datawhale南瓜书》出第二版啦!

Datawhale干货 作者:Datawhale开源项目团队 作为机器学习的入门经典教材,周志华老师的《机器学习》,自2016年1月底出版以来,首印5000册一周售罄,并在8个月内重印9次。先后登上了亚马逊,京东,当…

[数据集][目标检测]目标检测数据集绝缘子缺陷防震锤1688张5类别VOC格式

数据集格式:Pascal VOC格式(不包含分割路径的txt文件和yolo格式的txt文件,仅仅包含jpg图片和对应的xml) 图片数量(jpg文件个数):1688 标注数量(xml文件个数):1688 标注类别数:5 标注类别名称:["flashover",&…

00): Can‘t connect to MySQL server on ‘localhost:3306‘ (10061)

好久没有使用数据库, 连接数据库报上面的错误,尝试了网上的方法还是没有成功,思索之后想起之前手动关闭了mysql的服务,Windows启动时mysql服务不会自动启动,成功启动mysql服务后再次连接数据库,正常连接。 …

PGXC GaussDB

PGXCA PGXC(PostgreSQL eXtended Coordinator)是一个基于 PostgreSQL 架构的分布式数据库解决方案。它扩展了 PostgreSQL,为用户提供了在多个节点上分布式存储和处理数据的能力。 PGXC 的设计目标是将 PostgreSQL 扩展为能够处理大规模数据…

Java课程设计之购物车管理系统

一、项目准备 1、开发工具:JDK、Eclipse 2、需求分析: 包括商品管理和购物车管理。 1)商品管理主要功能 商品信息导入 显示所有商品信息 2)购物车主要功能 添加商品到购物车 修改购物车中的商品数量 显示购物车中的所有商…

MockServer 服务框架设计

【摘要】 大部分现有的 mock 工具只能满足 HTTP 协议下简单业务场景的使用。但是面对一些复杂的业务场景就显得捉襟见肘,比如对 socket 协议的应用进行 mock,或者对于支付接口的失败重试的定制化 mock 场景。为解决上述问题,霍格沃兹测试学院…