“第五十一天”

        无符号整数

计算机硬件在进行无符号整数的加法时,从最低位开始,按位相加,并往更高位进位。

当进行减法时,被减数不变,减数全部按位取反,末位加一(将一个正数变负,或者将一个负数变正),减法变加法,然后和加法运算一样。(之所以要将减法转变为加法,是因为加法电路造价便宜,减法电路造价昂贵,若将减法转变为加法,省钱。)

        带符号整数

带符号整数有原码,反码,补码之分,这个是无符号整数所没有的。

原码

1、符号位“0/1”对应“正/负”,剩余的数值位表示真值的绝对值;

2、真值 0 有两种表示形式:+0 . -0 ,+0的原码是 0,000 0000 (机器字长为 8 时,逗号是用来划分符号位和数值位的),  -0 : 1,000 0000;

若指明机器字长 ,常见的书面写法是 :(8bit,值为-19为例)  1,0010011   ;但若未指明机器字长,也可以写成 : 1,10011   (高位不用补零)。

对于原码而言,符号位不能参与运算,所以需要设计复杂的硬件电路才能处理,总之就是也很费钱,补码的出现应该就是为了方便计算机处理,贫穷推动科技发展.....

原,反,补码之间的相互转换:

正数: 原码,反码,补码都是一样的;

负数: 原码转化成反码 :符号位不变,数值位取反  ;  反码转化为补码,只需要在末位加一就可以。(这个还有个比较快捷的方法,原码,补码的相互转化,只需要从右往左找到第一个 1 ,然后这个 1 左边的所有 “数值位” 都按位取反,没有符号位,注意这个转化是双向都可以的)。

这里需要注意补码的数值位不能解读为位权,就是说,比如 1111 1111,这个数,其最低为不再表示2的零次方,第二位也不再表示 2 的一次方 ,但其实正数好像也没有什么问题,毕竟和原码是一样的。

计算机硬件进行补码的加法处理: 从最低位开始,按位相加(包括符号位),并往更高位进位。

对于补码的减法运算,实际上也是把减法转变为加法,而且处理方法和无符号整数是一样的。

一个数的补码和它相反数补码的关系是:全部位按位取反(包括符号位),末位+1;

        原码,反码 ,补码的基本特征总结:

对于原码和反码而言,只是形式上有所不同,但对于相同位数能表示的范围都是一样的,而且真值 0 的表示都是两种,正负0 ,反码的是全 1和全 0 表示 真值 0 .

但对于补码而言,其表示范围在相同位数下比原,反码多一个,就是符号位为1 ,其他位全为 0的情况,  1,000... 000,这个值表示的是负的2的n次方,n是位数。所以对于补码而言,真值 0 ,只有一种表示形式,那就是全为 0 的情况。

        移码:(这个之前没有接触过,也可能忘了,注意)

移码就是在补码的基础上将符号位取反(只有符号位注意),其余不变,而且移码只能用于表示整数。   移码所能表示的整数范围和补码是一样的,真值 0 也只有一种形式。(这个其实就是浮点数的那个阶码,就是float型里面那个要加127的那部分,不过那个偏置值和这里不一样,要对减1)

用移码表示的整数很方便用硬件电路对比大小;

        定点数;

定点数可以分为定点整数和定点小数,定点整数就是带符号整数。

对于定点整数,小数点的位置在数值部分的后面,1000 0000.  ,这个点就是小数点,位置在数值部分的后面,其编码表示可以是原,反,补,移

对于定点小数,小数点的位置隐含在符号位的后面, 1.000 0000 ,1后面有个点,这个点就是小数点,位置在符号位后面,1是符号位,表示该值为负,其编码表示可以是原,反,补。但这里就有个疑问,定点小数的小数点既然在符号位后面,那定点小数是不是就是小于1的。

嗯,那就是了。

定点小数的原,反,补码的相互转换和定点整数是一样的,这里定点小数的原码和反码的真值 0 也都是两种形式,原码就是还是,符号位为 1/0 ,其他位为 0,反码还是全 1 ,或者全 0,和定点整数一样, 定点小数的补码也只有一种,那就是全 0, 所以也会比原码和反码多表示一个数,就是符号位为 1,数值位全 0 的时候,这个时候表示 -1(最小值)。

定点小数和定点整数在进行位数扩展时,扩展位置不一样,定点小数时在数值位的最后补 0 ,定点整数是在数值位的最前面补 0;

        奇偶校验码

在进行数据传送的时候可能发生位错误,让0变成1,或者1变成0,比如我用 00 代表 a ,01代表b ,然后向其他人传送ab,就是 00 01 ,但在传送过程中,1可能变成了 0 ,那么对面接收的就是aa,而不是我发出的ab,所以加入了校验。

奇校验码:整个校验码(有效信息位和校验位)中 1 的个数为奇数。

偶校验码:整个校验码(有效信息位和校验位)中 1 的个数为偶数。

对于奇偶校验码,其第一位是奇偶校验位,后面的才是有效信息位

但是对于这种当出现的错误是偶数个的时候,是没有办法校验出来的,

比如 原本编码是  1001 101 对应的奇校验码就是 1 1001 101(当然也可以变成偶校验码),如果传送过程中出现某一位变化 变成了 1 1101 101 ,那么就可以检测出错误,但是如果有偶数个发生变化,如变成 1 1111 101 ,那么 1 的个数还是奇数个,那么错误就无法检测出来。

对于偶校验的硬件实现,是将各信息进行异或(模2加)运算,得到的结果即为偶校验位.

异或就是两个全 0 ,或全1 为 0 ,一 1 一 0 为 1.

所以进行偶校验的时候就是将所有位进行异或,若结果为 1 则说明出错了。

后面就做了几道题,就不发了。

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

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

相关文章

使用element-UI Cascader组件,实现第一级单选选,第二级,第三级,子级可以多选

最近开发过程中,遇到需求测一个需求,就是级联选择器,需要多选;但是第一级是单选; 既要单选又要复选。参照网上内容,自己整理了一下功能实现; 如下图: 思路:1.把第一层的…

卡巴斯基2009杀毒软件

下载地址:https://user.qzone.qq.com/512526231/main https://user.qzone.qq.com/3503787372/main

ROS学习记录2018.7.10

ROS学习记录2018.7.10 1.ROS基础了解 开源机器人操作系统ROS(robot operation system) 分级: 1.计算图集(一种网络结构) 1.节点:执行运算的进程(做基础处理的单元)2.消息&#x…

输入/输出应用程序接口和设备驱动程序接口

文章目录 1.输入/输出应用程序接口1.字符设备接口2.块设备接口3.网络设备接口1.网络设备套接字通信 4.阻塞/非阻塞I/O 2.设备驱动程序接口1.统一标准的设备驱动程序接口 1.输入/输出应用程序接口 1.字符设备接口 get/put系统调用:向字符设备读/写一个字符 2.块设备接口 read/wr…

Ubuntu环境下DOSBOX的配置

【步骤一】 先打开命令行,进入root模式,输入如下语句: sudo apt-get install dosbox 该语句的作用主要是安装dosbox 【步骤二】 安装完成之后,命令行输入dosbox 会进入dosbox页面: 【步骤三】 在你的主机中&…

淘宝app商品详情源数据API接口(解决滑块问题)可高并发采集

通过API接口采集淘宝商品列表和app商品详情遇到滑块验证码的解决方法(带SKU和商品描述,支持高并发),主要是解决了高频情况下的阿里系滑块和必须要N多小号才能解决的反扒问题,以后都可以使用本方法: 大家都…

统计数(C++)

系列文章目录 进阶的卡莎C++_睡觉觉觉得的博客-CSDN博客数1的个数_睡觉觉觉得的博客-CSDN博客双精度浮点数的输入输出_睡觉觉觉得的博客-CSDN博客足球联赛积分_睡觉觉觉得的博客-CSDN博客大减价(一级)_睡觉觉觉得的博客-CSDN博客小写字母的判断_睡觉觉觉得的博客-CSDN博客纸币(…

Ubuntu22.04 交叉编译阿里oss c-sdk

一、交叉编译openssl Ubuntu20.04 交叉编译openssl 1.0.1f_编译前去除 makefile 中所有的"-m64"字段_qq76211822的博客-CSDN博客文章浏览阅读319次。Ubuntu20.04 交叉编译openssl_编译前去除 makefile 中所有的"-m64"字段https://blog.csdn.net/sz7621182…

力扣刷题 day56:10-26

1.解码异或后的数组 未知 整数数组 arr 由 n 个非负整数组成。 经编码后变为长度为 n - 1 的另一个整数数组 encoded ,其中 encoded[i] arr[i] XOR arr[i 1] 。例如,arr [1,0,2,1] 经编码后得到 encoded [1,2,3] 。 给你编码后的数组 encoded 和原…

【Java集合类面试二十三】、List和Set有什么区别?

文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。 面试官:List和Set有什么区别&am…

Redis单线程还是多线程?

😃 个人学习笔记,不喜勿喷,望大佬指正! 目录 一、Redis为什么选择单线程1. 是什么?2. why,为什么之前选择单线程?3. 作者原话使用单线程原因,官网证据 二、 为什么逐渐加入多线程特性…

零基础Linux_23(多线程)线程安全+线程互斥(加锁)+死锁

目录 1. 线程安全 1.1 线程不安全前期 1.2 线程不安全原因 2. 线程互斥 2.1 加锁保护(代码) 2.2 锁的本质 3. 可重入对比线程安全 4. 死锁 4.1 死锁的必要条件 4.2 避免死锁 5. 笔试面试题 答案及解析 本篇完。 1. 线程安全 基于上一篇线程…

0基础学习PyFlink——用户自定义函数之UDTF

大纲 表值函数完整代码 在《0基础学习PyFlink——用户自定义函数之UDF》中,我们讲解了UDF。本节我们将讲解表值函数——UDTF 表值函数 我们对比下UDF和UDTF def udf(f: Union[Callable, ScalarFunction, Type] None,input_types: Union[List[DataType], DataTy…

【网安大模型专题10.19】论文6:Java漏洞自动修复+数据集 VJBench+大语言模型、APR技术+代码转换方法+LLM和DL-APR模型的挑战与机会

How Effective Are Neural Networks for Fixing Security Vulnerabilities 写在最前面摘要贡献发现 介绍背景:漏洞修复需求和Java漏洞修复方向动机方法贡献 数据集先前的数据集和Java漏洞Benchmark数据集扩展要求数据处理工作最终数据集 VJBenchVJBench 与 Vul4J 的…

腾讯云学生专享云服务器介绍及购买攻略

随着互联网技术的不断发展,越来越多的人开始关注云计算领域。作为国内领先的云计算服务商,腾讯云推出了“云校园”扶持计划,完成学生认证即可购买学生专享云服务器。 一、活动对象 仅限腾讯云官网通过个人认证的35岁以下学生用户参与&#x…

初识Node.js开发

一、Node.js是什么 1.node.js是什么 官方对Node.js的定义: Node.js是一个基于V8 JavaScript引擎的JavaScript运行时环境。 也就是说Node.js基于V8引擎来执行JavaScript的代码,但是不仅仅只有V8引擎: 前面我们知道V8可以嵌入到任何C 应用…

解决 Element-ui中 表格(Table)使用 v-if 条件控制列显隐时数据展示错乱的问题

本文 Element-ui 版本 2.x 问题 在 el-table-column 上需根据不同 v-if 条件来控制列显隐时&#xff0c;就会出现列数据展示错乱的情况&#xff08;要么 A 列的数据显示在 B 列上&#xff0c;或者后端返回有数据的但是显示的为空&#xff09;&#xff0c;如下所示。 <tem…

vue中使用xlsx插件导出多sheet excel实现方法

安装xlsx&#xff0c;一定要注意版本&#xff1a; npm i xlsx0.17.0 -S package.json&#xff1a; {"name": "hello-world","version": "0.1.0","private": true,"scripts": {"serve": "vue-c…

【Kotlin精简】第5章 简析DSL

1 DSL是什么&#xff1f; Kotlin 是一门对 DSL 友好的语言&#xff0c;它的许多语法特性有助于 DSL 的打造&#xff0c;提升特定场景下代码的可读性和安全性。本文将带你了解 Kotlin DSL 的一般实现步骤&#xff0c;以及如何通过 DslMarker &#xff0c; Context Receivers 等…

[UDS] --- DiagnosticSessionControl 0x10 service

1 会话 $10包含3个子功能&#xff0c;01 Default默认会话&#xff0c;02 Programming编程会话&#xff0c;03 Extended扩展会话&#xff0c;ECU上电时&#xff0c;进入的是默认会话&#xff08;Default&#xff09;。 为什么设计三个会话模式呢&#xff1f;因为权限问题。默认…