当前位置: 首页 > news >正文

水务公司网站建设方案android studio下载官网

水务公司网站建设方案,android studio下载官网,wordpress增加阅读量,熊猫关键词工具时间紧、不理解可以只看这里的结论 正数的原码、反码、补码相同。等于真值对应的机器码。 负数的原码等于机器码#xff0c;反码为原码的符号位不变#xff0c;其余各位按位取反。补码为反码1。 三种码的出现是为了解决计算问题并简化电路结构。 在原码和反码中#xff0c;存… 时间紧、不理解可以只看这里的结论 正数的原码、反码、补码相同。等于真值对应的机器码。 负数的原码等于机器码反码为原码的符号位不变其余各位按位取反。补码为反码1。 三种码的出现是为了解决计算问题并简化电路结构。 在原码和反码中存在正零0和负零-0。 补码的出现用到了模的知识。 机器数和真值 日常书写时在数值前面用号表示正数-号表示负数这种带符号的二进制数称为真值。 计算机处理时必须将和-转换为数码符号数码化的数被称为机器数。 一般将符号位放到最高位用0表示正用1表示负。 机器数 以3为例3对应的二进制数是00000011-3对应的二进制数是10000011。 二进制数00000011和10000011就是机器数。 真值 因为第一位是符号位所以机器数的形式值就不等于真正的数值。 例如上面的有符号数10000011其最高位1代表负其真正数值是-3而不是形式值13110000011转换成十进制等于131。所以为区别起见将带符号位的机器数对应的真正数值称为机器数的真值。 如0000 0011的真值 000 00111000 0011的真值 –000 0011 原码 原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. 比如如果是8位二进制: [1]原 0000 0001 [-1]原 1000 0001 因为第一位是符号位, 所以8位二进制数的取值范围就是:[1111 1111 , 0111 1111]即[-127 , 127]。 原码是人脑最容易理解和计算的表示方式。 以33、3(-3)、-3(-3)为例如果使用传统的加减法规则逢二进一 0000 00110000 00110000 01106结果正确。0000 00111000 00111000 0110-6结果错误。1000 00111000 001110000 0110-6数据溢出。 在计算正数时使用原码可以正常运算但如果出现负数或减法运算则会出错。 因此原码在计算时有着一套额外的规则。 原码的加法规则 判断被加数和加数的符号是同号还是异号。同号时做加法结果的符号就是被加数的符号。异号时先比较被加数和加数的数值绝对值大小然后由大值减去小值结果的符号取大值的符号。 由于原码运算规则复杂为了简化机器数的运算因此需要寻找其他表示负数的方法即之后的反码和补码。 反码 正数的反码是其本身。 负数的反码是在其原码的基础上, 符号位不变其余各位按位取反。 也叫真值的按位变反。 [1] [00000001]原 [00000001]反 [-1] [10000001]原 [11111110]反 可见如果一个反码表示的是负数, 人脑无法直观的看出来它的数值. 通常要将其转换成原码再计算。 补码 补码的表示方法是: 正数的补码就是其本身。负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后1。 [1] [00000001]原 [00000001]反 [00000001]补 [-1] [10000001]原 [11111110]反 [11111111]补 对于负数, 补码表示方式也是人脑无法直观看出其数值的. 通常也需要转换成原码在计算其数值。 为什么要有三种码 首先因为人脑可以知道第一位是符号位在计算的时候我们会根据符号位选择对真值区域的加减 (真值的概念在本文最开头)。 但是对于计算机加减乘数已经是最基础的运算要设计的尽量简单。 计算机辨别符号位显然会让计算机的基础电路设计变得十分复杂。 于是人们想出了将符号位也参与运算的方法。 我们知道根据运算法则减去一个正数等于加上一个负数即1-1 1 (-1) 0所以机器可以只有加法而没有减法这样计算机运算的设计就更简单了。 如果用原码表示让符号位也参与计算显然对于减法来说结果是不正确的。 这也就是为何计算机内部不使用原码表示一个数。 计算十进制的表达式: 1-10 1 - 1 1 (-1) [0000 0001]原 [1000 0001]原 [0000 0001]反 [1111 1110]反 [1111 1111]反 [1000 0000]原 -0 发现用反码计算减法结果的真值部分是正确的。 而唯一的问题其实就出现在0这个特殊的数值上。虽然人们理解上0和-0是一样的。但是0带符号是没有任何意义的。而且会有[0000 0000]原和[1000 0000]原两个编码表示0。 于是补码的出现, 解决了0的符号以及两个编码的问题 1-1 1 (-1) [0000 0001]原 [1000 0001]原 [0000 0001]补 [1111 1111]补 [0000 0000]补[0000 0000]原 这样0用[0000 0000]表示, 而以前出现问题的-0则不存在了.而且可以用[1000 0000]表示-128 (-1) (-127) [1000 0001]原 [1111 1111]原 [1111 1111]补 [1000 0001]补 [1000 0000]补 -1-127的结果应该是-128, 在用补码运算的结果中, [1000 0000]补就是-128。 但是注意因为实际上是使用以前的-0的补码来表示-128所以-128并没有原码和反码表示。(对-128的补码表示[1000 0000]补算出来的原码是[0000 0000]原, 这是不正确的)。 整数0的补码只有一种形式即00000000。补码10000000表示-128。 使用补码不仅仅修复了0的符号以及存在两个编码的问题而且还能够多表示一个最低数。这就是为什么8位二进制使用原码或反码表示的范围为[-127, 127]而使用补码表示的范围为[-128, 127]。 因为机器使用补码, 所以对于编程中常用到的32位int类型, 可以表示范围是[-2^31, 2^31-1]因为第一位表示的是符号位而使用补码表示时又可以多保存一个最小值。 当真值用补码表示时补码加法的规律和无符号数的加法规律完全一样因此简化了加法器的设计。 运算时符号位和数值位一起参加运算不必处理符号位上的进位即丢弃符号位上的进位。 模%mod的应用 推荐一位博客园的大佬 https://www.cnblogs.com/zhangziqiu/archive/2011/03/30/computercode.html 计算机巧妙地把符号位参与运算并且将减法变成了加法背后蕴含了怎样的数学原理呢 将钟表想象成是一个1位的12进制数。 如果当前时间是6点我希望将时间设置成4点我们可以: 往回拨2个小时: 6 - 2 4往前拨10个小时: (6 10) mod 12 4往前拨101222个小时: (622) mod 12 4 所以钟表往回拨(减法)的结果可以用往前拨(加法)替代。 现在的焦点就落在了如何用一个正数来替代一个负数。 同余的概念 两个整数ab若它们除以整数m所得的余数相等则称ab对于模m同余。 记作a ≡ b (mod m)。 读作 a 与 b 关于模 m 同余。 举例说明: 4 mod 12 416 mod 12 428 mod 12 4 所以4, 16, 28关于模 12 同余。 线性运算定理: 如果a ≡ b (mod m)c ≡ d (mod m) 那么: a ± c ≡ b ± d (mod m)a * c ≡ b * d (mod m) -1的反码表示是1111 1110. 如果这里将[1111 1110]认为是原码, 则[1111 1110]原 -126, 这里将符号位除去, 即认为是126。 发现有如下规律: (-1) mod 127 126126 mod 127 126 即: (-1) ≡ 126 (mod 127)2-1 ≡ 2126 (mod 127) 2-1 与 2126的余数结果是相同的! 而这个余数, 正式我们的期望的计算结果: 2-11 所以说一个数的反码实际上是这个数对于一个膜的同余数。而这个膜并不是我们的二进制而是所能表示的最大值。这就和钟表一样转了一圈后总能找到在可表示范围内的一个正确的数值。 而2126很显然相当于钟表转过了一轮而因为符号位是参与计算的正好和溢出的最高位形成正确的运算结果。 既然反码可以将减法变成加法, 那么现在计算机使用的补码呢? 为什么在反码的基础上加1, 还能得到正确的结果? 2-12(-1) [0000 0010]原 [1000 0001]原 [0000 0010]补 [1111 1111]补 如果把[1111 1111]当成原码, 去除符号位, 则: [0111 1111]原 127 其实, 在反码的基础上1, 只是相当于增加了膜的值 (-1) mod 128 127127 mod 128 1272-1 ≡ 2127 (mod 128) 此时, 表盘相当于每128个刻度转一轮. 所以用补码表示的运算结果最小值和最大值应该是[-128, 128]。 但是由于0的特殊情况, 没有办法表示128, 所以补码的取值范围是[-128, 127]。
http://www.tj-hxxt.cn/news/131548.html

相关文章:

  • 滨州市住房和城乡建设局网站廊坊关键词优化
  • 全运会为什么建设网站风控网站开发
  • 建一个自己的网站有什么用最新外贸电商平台
  • 广州外贸网站咨询网站后台做链接
  • 东西湖网站建设公司全屋定制十大品牌
  • 西安开发网站的公司一个旅游网站建设需求
  • 兴义之窗网站怎么做什么网站可以免费做视频的软件下载
  • 毕业设计做系统网站好网站建设与管理ppt模板
  • 有没有给别人做图赚钱的网站wordpress安装后删除
  • 部标平台软件网站开发早教网站设计
  • 建立类似淘宝的网站深圳装修网
  • 陕西网站建设企业深圳市宝安区网站建设
  • 网站被管理员权限叮当app制作平台下载
  • 现在那个网站做视频最赚钱网站建设方案 备案
  • 德阳有哪些做网站的公司广西建设局建设行政主管部网站
  • 网站建设访问人群做门户网站赚广告费
  • 免费商城网站模板下载沈阳网站建设 熊掌号
  • 地方汽车网站模板购买成都百度关键词排名
  • 长春网站快速排名提升湖南网站设计外包哪家好
  • 网站开发的prd 怎么写WordPress文章采集软件
  • google seo网站 被k沧州大型企业网站建设
  • 做电商怎么建网站网站开发毕业设计文献综述
  • 网站空间怎么申请微信小程序二次开发
  • 东莞网站SEO优化推广网站建设质量管理定义
  • 周到的网站建设装饰网站建设多少钱
  • 水果套餐网站广州冼村和猎德村哪个最有钱
  • 网站开发在线培训合肥企业网站建
  • 企业网站优化方案的策划网站空间邮箱
  • 网站域名起名姜堰网页设计
  • 做网络推广选择哪个网站好开发个微网站多少钱