|
发表于 2018-8-15 14:16:18
|
显示全部楼层
本帖最后由 关键是感觉 于 2018-8-15 14:53 编辑
我来给你讲解下。
计算机能储存的是二进制,这里是重点,这里是重点,这里是重点
那么很简单十进制2转为二进制就是10
10-1010
11-1011
255-11111111
依次类推
但是以上都是描述正数的存储,如何储存负数呢-11如何存储?
那就用编码表示负数呗。什么编码?总要有一个名字吧。补码
这里说下ASCII还有浮点很多很多都是用已知的知识去表示另外的东西。(比如123456 是我中国银行密码 123456 表示我建设银行密码。其中:中国银行-补码 建设银行-浮点,同样的123456 在不同的类型中表示不同的意义)
补码=反码+1
反码=原码取反
说下什么是原码。
原码:最高位为符号位,其他各位为数值本身的绝对值
我们以8位数据宽度来讲解
原码
1的原码 :0000 0001
-1的原码:1000 0001
10的原码 :0000 1010
-10的原码:1000 1010
区别就是负数的最高位为1,正数为0
反码
正数的反码和原码相同
负数的反码符号位为1,其他位对原码取反
10的原码 :0000 1010 反码:0000 1010
-10的原码:1000 1010 反码:1111 0101
补码
正数的补码和原码相同
负数的补码就是,反码+1
举例
-1的原码 1000 0001 反码 1111 1110 补码 1111 1111+1=1111 1111
-10的原码 1000 1010 反码 1111 0101 补码 1111 0101+1=1111 0110
1的原码 0000 0001 反码 0000 0001 补码 0000 0001 |
|