做地产网站哪家好,农产品电商网站建设,国际网页浏览器,wordpress去除下一页文章目录真值#xff08;有正负号#xff09;和机器数#xff08;0正1负#xff09;原码整数小数补码负数的补数正数的补数[y]~补~ [-y]~补~反码小结移码移位运算加减法运算溢出判断真值#xff08;有正负号#xff09;和机器数#xff08;0正1负#xff09; 无符…
文章目录真值有正负号和机器数0正1负原码整数小数补码负数的补数正数的补数[y]~补~ [-y]~补~反码小结移码移位运算加减法运算溢出判断真值有正负号和机器数0正1负 无符号数与真值and机器数都不是一个概念 移码不是有符号数 它没有符号位他是用于比较大小
原码
整数 n位整数 最大值为2ⁿ-1 最小时绝对值取最大最小为-2ⁿ-1 原码的0有两种表示 00,0000 -01,0000
小数 数值位为n对于小数 最大值为1-2的(-n)次方 最小时绝对值取最大最小为-1-2的(-n)次方 最大值0.1111—》0.11110.00011 最小值-0.1111 小数原码的0有两种表示这个和整数一样 假设数值位为4 00.0000 -01.0000 8位原码表示的范围是0——255一共是256个数 范围是-127到127【因为有一位是符号位】 不过比若说5位原码0,0000和1,0000都表示0是同一个数 补码 1.绝对值的和就是我们的模 2 负数它的模补数 例如-8的补数12-84即补数为4 验证10-8(104)%122 9成为了-3的补数 负数的补数 正数的补数 负数的补数负数模 对于负数如果它的符号位 不用 01表示 那么模2n,n表示数值位个数 如果负数的符号位 用 01表示 那么模2n1,n表示数值位个数,1为符号位 假设n为4, 最大值1111也就是24-115 最小值10000也就是241(-24)1,0000 【这个1可以当做符号位代表负数 也可以当做数值位代表16。 总的说就是他可以表示一个最小的负数-16】 补码里面没有 -0 因为 -010000在我们补码里面不再是 -0而表示-16 负小数的补码2的由来 正小数的补码0.0000 负小数的补码符号位向前走一位10.0000所以2进制102 原码和补码相互转化除符号位按位取反末尾1 [y]补 [-y]补 反码 小结 补码和反码机器数越大对应的真值越大 移码 移码是为了方便计算机比较两个正负数之间补码的大小关系 比如21的补码0,10101 - 21的补码1,01011 单纯比较机器数-21的补码21的补码 这显然是不对的。 仔细观察发现这两个正负数其实只要符号位互换计算机就可以比较他们的大小了 正数的移码符号位由0变1就行了 负数的移码它的补码符号位取反 比如二进制-10100 补码1,01100 移码 2^5^ -101000,01100 [X]移[X]补符号位取反
移位运算 左移三位丢掉左边的1对应的真正就不准确了 左移三位丢掉左边的1对应的真正就不准确了 补码 左移三位丢掉左边的0对应的真正就不准确了 因为补码是在原码的基础上按位取反1得到的丢掉1相当于是原码的0不影响准确性 补码 右移一位丢掉右边的0不影响结果左边补1【补得是符号位】 右移两位丢掉一个1影响精度左边填1【补得是符号位】 反码 移掉0会影响结果 移调1相当于原码的0不影响结果 加减法运算 上图证明了[AB]补[A]补[B]补 先求出AB的值再就出【A补B补】的值【AB】的补码正好和【A补B补】的值相等 这样当计算机在求AB时 可以先求【AB】的补也就是【A补B补】的值 然后再通过补码转原码 [x]补[y]补0.10010.10111.0100 把1.0100向右移动一位0.1010也就是 10/16再乘2正好才是结果的20/16
溢出判断