机器数的原码、反码、补码、移码表示以及浮点数的二进制表示

2023-11-12

初学计算机组成原理时,有点儿搞不清楚机器数的各种表示方法。今天在这里总结一下,希望对大家有帮助。
首先明确两个概念,机器数是指将”+”和”-“数字化的数,其中用”0”表示”+”,”1”表示”-“。而对应的有”+”和”-“的数则称为真值
机器数的表示方法:

1、原码表示法
符号位0表示正数,符号位1表示负数。数值位为真值的绝对值。

+0.1011 原码为->0.1011
-0.1011  原码为->1.1011
+1100    原码为->0,1100
-1100     原码为->1,1100
整数符号位和数值位之间用逗号隔开,小数符号位和数值位之间用小数点隔开

2、补码表示法
正数的补码为符号位加其本身,负数的补码为符号位加其绝对值求反加一
+1010    补码为->0,1010
-1101     补码为->1,0011
+0.1001 补码为->0.1001
-0.0110  补码为->1.1010
+0和-0的补码均为0.0000

3、反码表示法
正整数的反码为符号位加其本身,负数的反码符号位加其各位取反
+1101     反码为->0,1101
-1101      反码为->1,0010
+0.0110  反码为->0.0110
-0.0110   反码为->1.1001

4、移码表示法
由于在计算机中不存在”,”,当真值用补码来表示的话,由于符号位和数值部分一起编码,则很难通过补码的形式字节判断真值的大小。因此引入了移码的概念。
移码为真值加一个常数2^n,在移码中0也是唯一的

数的浮点表示:
实际上计算机处理的数不一定是纯小数或者是纯整数。浮点数是由阶码j和尾数S两部分组成。阶码包括阶符和数值部分,尾数是小数,其位数反映了浮点数的精度这里写图片描述
尾数的符号表示浮点数的正负。
根据IEEE标准
float     符号位 1 阶码 8 尾数   23 总位数 32
double 符号位 1 阶码 11 尾数 52 总位数 64
其中阶码用移码表示,阶码的真值都被加上一个偏移量。其中float的偏移量为127,double的偏移量为1023

求解312对应的浮点数的二进制表示:
对应的浮点数为312.0,首先求312对应的二进制数为:
100111000
从左算起第一个1后还有8位,则我们将这8位作为小数位,单精度浮点数的小数位有23位,则还要在这8为后加15个0,得00111000000000000000000
由于偏移量为127个单位,加上右移操作的8个单位,偏置量总共为135个单位,将135用二进制表示为:
10000111
加上符号位0,得到最后二进制浮点数为0100 0011 1001 1100 0000 0000 0000 0000

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

机器数的原码、反码、补码、移码表示以及浮点数的二进制表示 的相关文章

  • 【通信原理】数字基带传输的线路码型

    数字基带传输的线路码型 简单介绍数字基带传输的线路码型的信号波形的特点 以及生成方法 注意观察频谱 文末附Matlab代码 以下包括双极性NRZ 单极型NRZ 双极型RZ 单极型RZ 差分码 曼切斯特码 数字双相码 密勒码 CMI码 AMI
  • 浮点数比较大小的问题

    因为计算机存储的特性 任意两个浮点是不能用 直接比较 比较好的方法就是用两个数之间的差值小于某个最小值 比如对于两个浮点数a b 如果要比较大小 那么常常会设置一个精度 如果fabs a b lt 1e 6 那么就是相等了 fabs是求浮点
  • C++编程积累——C++实现十进制与二进制之间的互相转换

    欢迎关注原创公众号 计算机视觉联盟 回复 西瓜书手推笔记 可获取我的机器学习纯手推笔记 直达笔记地址 机器学习手推笔记 GitHub地址 目录 十进制与二进制之间的转换 十进制转换二进制 C 实现十进制转换二进制 二进制转换十进制 C 实现
  • 编码的几种实现

    几个概念 Unicode是一种 编码 所谓编码就是一个编号 数字 到字符的一种映射关系 就仅仅是一种一对一的映射而已 Unicode只是一个符号集 它只规定了符号的二进制代码 却没有规定这个二进制代码应该如何存储 GBK UTF 8是一种
  • 有限域GF(2^8)内乘法代码实现以及原理

    在密码学中经常用到有限域的乘法 一般在AES中用到的是GF 2 8 有限域内乘法 什么是有限域呢 有限域通俗的讲就是函数的运算结果全都包含在一个域中 不同于实数域 有限域有一个最大值 所有超过这个最大值的数都会经过一定的方法使他回到这个域中
  • CUDA编程 之 二进制工具与反编译

    两个 反编译工具 cuobjdump and nvdisasm 参考 http blog csdn net dark5669 article details 62264312
  • mysql [42000][1071] Specified key was too long; max key length is 767 bytes

    今天在MySQL中建立表的时候 报了一个错误 说是key太长了 超戳了767个字节 但是建表语句并有超过指定的长度啊 CREATE TABLE XXL JOB QRTZ JOB DETAILS SCHED NAME VARCHAR 120
  • Linux下的dd命令

    简介 dd命令是Linux下的一个重要的磁盘操作命令 它的主要作用是备份和复制磁盘 dd的语法是 dd if 输入文件的名称 of 输出文件的名称 参数 值 if 输入文件的名称 指定输入文件的名称 可以是文件 设备 目录等 of 输出文件
  • 字符游戏-智能蛇的学习

    目标 实现可以智能化移动 不撞墙 自由追寻果实的贪吃蛇程序 即拥有感知 决策 行动的能力 学习过程 根据index中sin曲线的绘制过程可知我们可以知道可以用while循环反复打印的方式达到刷屏的效果 这样 我们将贪吃蛇移动的每一步都单独打
  • Python Numpy数组保存

    Numpy提供了几种数据保存的方法 以3 4数组a为例 1 a tofile filename bin 这种方法只能保存为二进制文件 且不能保存当前数据的行列信息 文件后缀不一定非要是bin 也可以为txt 但不影响保存格式 都是二进制 这
  • _cdecl、_stdcall和_fastcall的区别

    概述 在windows开发环境中有三种觉的调用协议 分别为 cdecl C调用 stdcall 标准调用 fastcall 快速调用 三种调用方式有参数传递和栈帧恢复的方式有所不同 本文在结合汇编代码简要说明一下有三种调用方式的区别 环境
  • python接收易语言数据中文乱码

    易语言代码 book name 发送到发 txt 提交信息 引号 book name 引号 引号 编辑框 下载 内容 引号 到文本 网页 访问 对象 http 127 0 0 1 8000 download 1 提交信息 Content T
  • 在Java中如何判断字符串的编码格式

    最近 我一直试图寻找一种判断Java程序中字符串编码格式的方法 同时 也查找了很多资料 设计了一个的程序 美中不足的是该方法对仅含有数字和英文字母的字符串无效 原理 ASCII GBK UTF 8对数字和英文字母的编码相同 对其它字符编码不
  • qt 如果出现未声明的变量,前提是已经声明过的

    找到你的 cpp h 文件 用记事本打开 然后另存为的时候最下面的编码改成unicode的 最好cpp文件也改成unicode的
  • ajax请求二进制流图片并渲染到html中img标签

    说明 后台返回图片二进制流 需要使用get请求获取返回结果 并且将返回的二进制流以图片形式显示在页面img中 但是日常显示图片都诸如这种形式 img src 图片路径 地址 alt 以上需求不能将后端地址直接填入src 原因是需要获取图片请
  • Console.WriteLine打印中文为何出乱码?

    因为你当前环境代码页是437 是美国英语的字符编码 你把你环境设置成936就是简体中文字符编码环境了 你当前的是这个 Console OutputEncoding Encoding GetEncoding 437 设置成这样就支持中文编码了
  • 按指定条件从C++11 map中删除元素

    问题 无法使用remove if配合map容器的erase操作按指定条件从map容器删除元素 C 11 解决方案 可以使用一下函数实现这个需求 template
  • 转:使用DOS命令chcp查看windows操作系统的默认编码以及编码和语言的对应关系

    代码页是字符集编码的别名 也有人称 内码表 早期 代码页是IBM称呼电脑BIOS本身支持的字符集编码的名称 当时通用的操作系统都是命令行界面系统 这些操作系统直接使用BIOS供应的VGA功能来显示字符 操作系统的编码支持也就依靠BIOS的编
  • 黑马程序员---从头开始,回忆JAVA基础之JAVA用十六进制表示浮点数的方法

    在二进制文件中 存储数据的格式为16进制 下面举例说明27 0f在二进制文件中怎么表示 float 共计32位 折合4字节 由最高到最低位分别是第31 30 29 0位 31位是符号位 1表示该数为负 0反之 30 23位 一共8位是指数位
  • 【C/C++】浮点数的比较

    本文为 C C 学习总结 讲解浮点数的比较 浮点数经过大量运算后会损失精度 对比较操作带来较大困扰 因为 C 中的 操作需要完全相同时才能判定为 true 我们引入一个极小数 eps 修正误差 比较运算符 若一个数 a 落在 b eps b

随机推荐

  • c++以空格分开的输入数组_C++处理输入字符串并转为数组的操作

    最近在做题的时候在处理输入时遇到一个令人头疼的问题 今天解决了和大家分享一下 比如题目要求的输入为一行数 数与数之间用空格间隔开 数的个数未知 数也有正有负 11 2 65 7 那么如何把这个输入保存到数组a中 且数组a中的值为a 0 11
  • 4G DTU

    4G DTU是一种可以将RS232 485采集的数据通过3G 4G发送到云端服务器进行数据交互的传输设备 实现串口设备的无线长距离数据传输 进而实现远程数据通信管理 主要应用在远程数据采集和远程控制项目 卓岚的4G DTU分为2种类型 1
  • vue中tree-transfer树形穿梭框的使用

    首先安装插件 npm install el tree transfer save 或者 npm i el tree transfer S 安装 效果图 代码
  • vue点击导航菜单,展示选中样式,菜单路由存在嵌套路由时也可以判断为当前路由

    采用计算属性监听跳转页面后url拼接的路由路径来判断是否在当前页面 包括解决嵌套路由带来的判断干扰 效果图 定义路由 router js import Vue from vue import VueRouter from vue route
  • 睿智的智能优化算法2——遗传算法的python实现

    睿智的智能优化算法2 遗传算法的python实现 什么是遗传算法 求解过程 整体代码分解 1 编码解码部分 2 求取适应度部分 3 自然选择部分 4 组合交叉 5 基因突变 实现代码 GITHUB下载连接 睿智的智能优化算法小课堂再次开课啦
  • LSM6DS3,SO, SPI

    一 LSM6DS3是ST的一款6轴力学传感器 3轴加速度 3轴陀螺仪 特别注意 后缀不一样 功能有很大不一样 有的有OIS功能 有的没有 LSB的意思是最小有效位 为数字输出方式 一般我们可以用mdps LSB来表示灵敏度 8 75 mdp
  • iOS开发Google Protocol Buffer 的解析封装(二)

    为此我封装了一个Google Protocol Buffer的网络解析方法 由于项目时间比较急 我没有写出更好的封装方法 我会继续创作 希望大家的鼓励与支持 PBHttpMethod h 的文件 import
  • Junit mockito 测试Controller层方法有Pageable异常

    1 问题 在使用MockMVC Mockito模拟Service层返回的时候 当我们在Controller层中参数方法调用有Pageable对象的时候 我们会发现 我们没办法生成一个Pageable的对象 会报一个Pageable是一个接口
  • C语言中宏的预编译控制语句#ifndefine、#define和#endif(总结)

    例如 ifndefine 这是 if not defined 的简写 是宏定义的一种 它是可以根据是否已经定义了一个变量来进行分支选择 一般用于调试等等 实际上确切的说这应该是预处理功能中三种 宏定义 文件包含和条件编译 中的第三种 条件编
  • smartGit安装和过期解决

    一 下载安装包 去百度下载 二 安装英文 第三点是中文版本的 2 1 exe安装 解压smartgit win 18 1 5 zip 点击smartgit64 exe安装 2 2 配置 2 3 用户配置 core autocrlf fals
  • python极简循环输出+break和continue

    目录 一 python极简输出 二 break和continue 一 python极简输出 如上图所示 上面只有一个错误答案 我们用排除法知道 错误的是答案B 但这里面有个有趣的答案C 就是 print languages i years
  • 【华为OD机试】查字典 (C++ Python Java)2023 B卷

    时间限制 C C 1秒 其他语言 2秒 空间限制 C C 262144K 其他语言524288K 64bit IO Format lld 语言限定 C clang11 C clang 11 Pascal fpc 3 0 2 Java jav
  • 人眼定位算法简单概述

    这篇博客只是总结一下人眼定位的方法 首先人眼定位效果是得到人眼的坐标 即瞳孔的坐标 大体来说人眼定位的方法有两种 第一种是利用人眼的几何特征 灰度特征等通过算法来实现定位 第二种要通过机器学习 其实opencv自带了瞳孔分类器 但我应用起来
  • 基于 python的MES管理系统

    一 项目简介 基于 python的MES管理系统 二 实现功能 支持多端 pc端 移动端 小程序 app 支持各种协议 modbus mqtt 支持接入各种数据源 内置数据计算服务 支持数据清洗 支持数据可视化 支持空间数据 支持门店数据
  • ZooKeeper的一个性能测试

    2011 07 15 18 07 00 3台ZooKeeper服务器 8核64位jdk1 6 log和snapshot放在不同磁盘 场景一 同一个目录下 先createEPHEMERALnode 再delete create和delete各
  • 人脸识别技术成熟加速终端设备技术扩展

    脸支付的应用 已经对我们的生活带来了很多便利 除了金融 现在商超等场景 也大多添加了刷脸支付设备 无需拿出手机 不用担心手机没电 刷脸即可支付 人脸识别技术的成熟 也加速了在终端设备的技术扩展速度 现在的刷脸设备 除了基本的支付功能 还融合
  • xxx.jar中没有主清单属性解决办法

    在springboot中的pom xml文件中引入
  • MyEclipse下配置WebLogic10(转)

    MyEclipse下配置WebLogic10 转 安装 WebLogic 比较容易 在这里就不再累述了 大家可以参阅相关文档 现在着重讲一下 WebLogic 的配置 因为后面在配置 MyEclipse 时将用到这里的配置信息 运行开始 g
  • 【Bug记录】Fail to create pixmap with Tk_GetPixmap in TkImgPhotoInstanceSetSize

    Bug记录 项目场景 问题描述 解决方案 项目场景 绘图代码出现Fail to create pixmap with Tk GetPixmap in TkImgPhotoInstanceSetSize 问题描述 在测试网络时出现此Bug 可
  • 机器数的原码、反码、补码、移码表示以及浮点数的二进制表示

    初学计算机组成原理时 有点儿搞不清楚机器数的各种表示方法 今天在这里总结一下 希望对大家有帮助 首先明确两个概念 机器数是指将 和 数字化的数 其中用 0 表示 1 表示 而对应的有 和 的数则称为真值 机器数的表示方法 1 原码表示法 符