负数的二进制编码——越是基础的越是要掌握 分类: 学习笔记2010-02-15 13:18330人阅读评论(0)收藏举报 原码就是原来的表示方法 反码是除符号位(最高位)外取反 补码=反码+1 以前学习二进制编码时,老师讲了一堆堆的什么原码啊反码啊补码啊 x x x x 转换啊,还有负数的表示方式啊 总是记不零清,终于从网上找到了一种比较好的讲解方式,保存再 s hare 一下,不过为了系统化讲解,又找来了一些编码的基础知识,如果只想看负数编码记忆法,请跳转到 1
如果你不知道二进制怎么编码,请继续,否则请跳到2 1字节 = 8位,所以它能表示的最大数当然是8位都是1(既然2进制的数只能是0或1,如果是我们常见的10进制,那就8位都为9,这样说,你该懂了
) 1字节的二进制数中,最大的数: 11111111
这个数的大小是多少呢
让我们来把它转换为十进制数
无论是什么进制,都是左边是高位,右边是低位
10进制是我们非常习惯的计数方式,第一位代表有几个1(即几个100),第二位代表有几个10(即几个101),第三位代表有几个100(即有几个102)…,用小学课本上的说法就是:个位上的数表示几个1,十位上的数表示向个 10,百位上的数表示几个100…… 同理可证,二进制数则是:第1位数表示几个1 (20),第2位数表示几个2(21),第3位数表示几个4(22),第4位数表示向个8(23)…… 以前我们知道1个字节有8位,现在通过计算,我们又得知:1个字节可以表达的最大的数是255,也就是说表示0~255这256个数
那么两个字节(双字节数)呢
双字节共16位
1111111111111111,这个数并不大,但长得有点眼晕,从现在起,我们要学会这样来表达二制数: 1111 1111 1111 1111,即每4位隔一空格
双字节数最大值为: 1 * 215 + 1 *2