技术标签: 计组 移码 计算机学科基础综合 补码 408 反码
用尾数表示真值的绝对值,符号位“0/1”对应“正/负”
若机器字长n+1位,原码整数的表示范围: − ( 2 n − 1 ) ≤ x ≤ 2 n − 1 {\color{Red} -(2^{n}-1)\leq x\leq 2^{n}-1} −(2n−1)≤x≤2n−1(关于原点对称)
真值0有 + 0 {\color{Red} +0} +0 和 − 0 {\color{Red} -0} −0 两种形式
若机器字长 n+1 位,原码小数的表示范围: − ( 1 − 2 − n ) ≤ x ≤ 1 − 2 − n {\color{Red} -(1-2^{-n})\leq x\leq 1-2^{-n}} −(1−2−n)≤x≤1−2−n(关于原点对称)
真值0有 + 0 {\color{Red} +0} +0 和 − 0 {\color{Red} -0} −0 两种形式
若符号位为0,则反码与原码相同
若符号位为1,则数值位全部取反
若机器字长 n+1 位,反码整数的表示范围: − ( 2 n − 1 ) ≤ x ≤ 2 n − 1 {\color{Red} -(2^{n}-1)\leq x\leq 2^{n}-1} −(2n−1)≤x≤2n−1(关于原点对称)
若机器字长 n+1 位,反码小数的表示范围: − ( 1 − 2 − n ) ≤ x ≤ 1 − 2 − n {\color{Red} -(1-2^{-n})\leq x\leq 1-2^{-n}} −(1−2−n)≤x≤1−2−n(关于原点对称)
真值0有 + 0 {\color{Red} +0} +0 和 − 0 {\color{Red} -0} −0 两种形式
[ + 0 ] 原 = 0 , 0000000 [+0]_{原}=0,0000000 [+0]原=0,0000000 [ − 0 ] 原 = 1 , 0000000 [-0]_{原}=1,0000000 [−0]原=1,0000000
[ + 0 ] 反 = 0 , 0000000 [+0]_{反}=0,0000000 [+0]反=0,0000000 [ − 0 ] 反 = 1 , 1111111 [-0]_{反}=1,1111111 [−0]反=1,1111111
正数的补码=原码
负数的补码=反码末尾+1(要考虑进位)
若机器字长 n+1 位,补码整数的表示范围: − 2 n ≤ x ≤ 2 n − 1 {\color{Red} -2^{n}\leq x\leq 2^n-1} −2n≤x≤2n−1(比原码多表示一个负数 − 2 n {\color{Red}-2^{n}} −2n)
若机器字长 n+1 位,补码小数的表示范围: − 1 ≤ x ≤ 1 − 2 − n {\color{Red} -1\leq x\leq 1-2^{-n}} −1≤x≤1−2−n(比原码多表示一个 − 1 {\color{Red}-1} −1)
补码的作用:让减法操作转变为等价的加法操作,节省硬件成本,ALU中无需集成减法器,执行加减法时,符号位一起参与运算
注意:补码的真值0只有一种表示形式
定点整数补码 [ x ] 补 = 1 , 0000000 [x]_{补}=1,0000000 [x]补=1,0000000 表示 x = − 2 7 {\color{Red} x=-2^{7}} x=−27
整数的原码和补码之间的相互转换都是数值位取反,末尾加1
定点小数补码 [ x ] 补 = 1 , 0000000 [x]_{补}=1,0000000 [x]补=1,0000000 表示 x = − 1 {\color{Red} x=-1} x=−1
小数的原码和补码之间的相互转换都是尾数取反,末尾加1
在补码的基础上将符号位取反。注意:移码只能用于表示整数
移码的计算:移码=真值+偏置值
比如8位移码的偏置值=1000 0000B,即就是 2 n − 1 2^{n-1} 2n−1
——————
-127
原码=1111 1111B
真值=-111 1111
移码=-111 1111B+1000 0000=0000 0001
——————
+127
原码=0111 1111B
真值=0111 1111
移码=0111 1111+1000 0000=1111 1111
移码的真值0只有一种表示形式: [ + 0 ] 移 = [ − 0 ] 移 = 1 , 0000000 [+0]_{移}=[-0]_{移}=1,0000000 [+0]移=[−0]移=1,0000000
若机器字长 n+1 位,移码整数的表示范围: − 2 n ≤ x ≤ 2 n − 1 {\color{Red} -2^{n}\leq x\leq 2^n-1} −2n≤x≤2n−1(与补码相同)
移码的作用:移码很方便的用计算机硬件判断两个整数的大小
之后的浮点数的相关运算中会大量使用到移码
32 | 16 | 8 | 4 | 2 | 1 |
---|---|---|---|---|---|
1 | 1 | 0 | 0 | 1 | 0 |
前面补0,凑足8位,其中第一位为符号位
[ x ] 原 = [ x ] 反 = [ x ] 补 = 0 0110010 [x]_{原}=[x]_{反}=[x]_{补}={\color{Red} 0}0110010 [x]原=[x]反=[x]补=00110010
[ x ] 移 = 1 0110010 [x]_{移}={\color{Red} 1}0110010 [x]移=10110010 (补码的符号位由1变为0)
【解析】
[ x ] 原 = 1 1100100 [x]_{原}={\color{Red} 1}1100100 [x]原=11100100
[ x ] 反 = 1 0011011 [x]_{反}={\color{Red} 1}0011011 [x]反=10011011(原码数值位取反)
[ x ] 补 = 1 0011100 [x]_{补}={\color{Red} 1}0011100 [x]补=10011100(补码数值位加1)
[ x ] 移 = 0 0011100 [x]_{移}={\color{Red} 0}0011100 [x]移=00011100(补码的符号位由1变为0)
符号位、数值位全部取反,末位+1
原码和反码的真值0有两种表示;
补码和移码的真值0只有一种表示。
若机器字长为n+1位,则:
原码和反码:
整数表示范围: − ( 2 n − 1 ) ≤ x ≤ 2 n − 1 {\color{Red} -(2^{n}-1)\leq x\leq 2^{n}-1} −(2n−1)≤x≤2n−1
小数表示范围: − ( 1 − 2 − n ) ≤ x ≤ 1 − 2 − n {\color{Red} -(1-2^{-n})\leq x\leq 1-2^{-n}} −(1−2−n)≤x≤1−2−n
补码:
整数表示范围: − 2 n ≤ x ≤ 2 n − 1 {\color{Red} -2^{n}\leq x\leq 2^n-1} −2n≤x≤2n−1
小数表示范围: − 1 ≤ x ≤ 1 − 2 − n {\color{Red} -1\leq x\leq 1-2^{-n}} −1≤x≤1−2−n
移码:
整数表示范围: − 2 n ≤ x ≤ 2 n − 1 {\color{Red} -2^{n}\leq x\leq 2^n-1} −2n≤x≤2n−1
移码全0真值最小,移码全1真值最大
文章浏览阅读1w次,点赞11次,收藏109次。文章目录前言:一、什么是Google Hacking?二、Google Hacking的常用语法:三、Google hacking的常用语法:1、寻找网站的后台登录页面:2、搜索网站中的文件:3、下载网站的数据库:4、登录后台管理:5、利用google搜索C段服务器信息:6、利用其他漏洞:前言:简单总结下Google Hacking语法。一、什么是Google Hacking?Google Hacking是指使用Google、百度等搜索引擎对某些特定网站主机漏洞进行搜索,以达到快速找到漏洞主机或特_google hacking语法
文章浏览阅读640次。栈的应用——进制转换、括号匹配检验、行编辑程序、表达式求值_实现顺序栈的基本操作,进行数制转换和括号匹配的检测;
文章浏览阅读611次。MyBatis Generator (MBG): Mybatis官方提供的代码生成器,可以根据数据库中表结构自动生成简单的CRUD操作。但联合查询和存储过程,仍需手动手写SQL和对象。MBG可以通过使用Maven、Java编码、命令行等方式来运行。本文主要介绍在Intellij IDEA中使用Maven插件mybatis-generator-maven-plugin来自动生成MyBatis代码...
文章浏览阅读520次。price = int(input("输入商品总价"))vip = int(input("是否会员?1 是 0 否"))if vip==1: price==price*0.8 print("应支付",price,"元")elif vip==0 and price<=200: print("应支付",price,"元")elif vip==0 and price>200: price=price-20 print("应支付",price,"元")_如果是vip老顾客,则有10%的优惠折扣(9折),并告诉顾客最终支付价格。vip_name
文章浏览阅读119次。根号分治_根号分治
文章浏览阅读2.1w次,点赞27次,收藏220次。基于MATLAB的数字图像处理———灰度变换与空间滤波对于图像平面,定义为二维函数 f (x,y),其中x,y分别为空间横竖坐标。当f,x,y都是有限离散值时,图像即为数字图像。一、图像的输入/输出和显示相关函数:imread(‘filename’) //读取图片imshow(f)//显示图片figure//保留第一幅并输出第二幅你好! 这是你第一次使用 Markdown编辑器 ..._f=imread('c:/experiment/test3.jpg'); >> imhist(f,8); >>figure,imshow(f);
文章浏览阅读268次。macos上的ios虚拟机I recently turned one of my posts into a SwiftUI app, and the process is very easy. My post was documentation for SwiftUI itself, so it was separated into segments for each of the Views a..._ios 虚拟机可以获取rid吗
文章浏览阅读300次。哈希查找是一种高效的查找算法,它能够快速定位元素并返回其位置。在Java语言中,我们可以使用HashMap或HashTable类来实现哈希查找。本文介绍了Java语言中的哈希查找算法的实现步骤,并给出了代码示例和运行结果。希望本文能够帮助你理解和使用哈希查找算法。_java怎么从has表里面定位数据
文章浏览阅读3.9k次,点赞2次,收藏21次。本次演示使用vmware虚拟机,下面先说vmware虚拟机的新建步骤:首先,新建虚拟机,选择自定义;选择ESXI6.7,如果是其他版本ESXI请选择正确版本的ESXI;选择稍后安装操作系统;选择对应版本的ESXI;自定义安装目录,此处不建议使用默认C盘安装位置;按照本地机器实际硬件情况选择配置;网络选择NAT模式;选择准虚拟化;之后直接下一步到最后即可;新建完成后,在虚拟机设置中挂载ESXI安装镜像,然后开机进行ESXI系统安装。虚拟机开机后,进入ESXI系统界_vsca
文章浏览阅读251次。1.简介smalidea是一个IntelliJ IDEA/Android Studio smali语言插件,可实现动态调试smali代码。下载地址为:https://github.com/JesusFreke/smali/wiki/smalidea。Android Studio的安装,就是傻瓜式的安装,一路next下去。接下来笔者介绍一下笔者的软件环境:jdk 1.8,android studio..._最新版安卓studio smalidea是哪个插件
文章浏览阅读2k次,点赞3次,收藏5次。JSON作为一种重要的数据格式,具有良好的可读性以及自描述性,广泛地应用在各种数据传输场景中。在网络爬虫中,当网页采用AJAX方式渲染数据时,我们必须找出AJAX的异步请求方式,并且模拟发送AJAX,从中获取数据内容,AJAX的响应数据大部分采用JSON格式表示。GoLand可以使用标准库encoding/json解析JSON数据,此外还有第三方包ffjson、easyjson、jsoniter..._golang 爬虫json解析
文章浏览阅读1.7k次。前言前面的博文介绍了用standardJS进行vue项目的规范https://blog.csdn.net/GISuuser/article/details/114034641。但是发现有一个问题,无法修改规则,有一些规则不适合公司现有项目,又尝试了使用EsLint。配置也非常简单。配置安装依赖。最好用下面的方法,因为只安装Eslint,在初始化的时候会提示你安装下面剩余的,到时候非常麻烦,npm速度也慢。cnpm install --save-dev babel-eslint esli_@vue/eslint-config-standard