我来给班主任——婧芸小姐姐交作业辣。
上了几天基础课,内容还是比较简单易懂的,技术贴好像没法写
没办法,我只有写点这几天基础课上某些知识点的拓展知识咯(童鞋们,仅供了解就好。大神的话就无视此贴吧)。
接下来是正题: 原码、反码、补码
之前课上讲的8种基本数据类型,其对应的所占字节,所占位数,如图
因为,计算机只认识二进制数(即只知道0,1)一位只能表示2种,不是0就是1。而byte占了8位,可以从取[0000 0000]~[1111 1111](二进制)之间的值。[1111 1111](二进制)换算成十进制就是255,那么byte对应十进制的取值应该是0~255呀?怎么会变成-128~127呢?
其实,计算机默认最左边的一位(最高位)是符号位:0表示正 ,1表示负。([0000 0000]~[1111 1111],标记成红色的那一位决定了这个数的正负号),所以byte的最大值用二进制表示应该是[0111 1111],换算成十进制就是127。那么最小值是啥呢?是[1111 1111]还是[1000 000]呢?
前者,最高位是1,代表负数,剩下的部分转换成 十进制是127,最终结果是-127。这和我们学到的结论不一致呀!-128是怎么 来的啊?
啊哈哈,一个冲击性的事实,[1000 000]这个二进制在计算机中就是-128。这个才是最小值哟,至于为什么?好,“原码、反码、补码“出场了。

1.jpg (54.65 KB, 下载次数: 23)
2.jpg (57.49 KB, 下载次数: 31)
| 欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |