为什么C语言中int的表示范围是

您所在的位置:网站首页 32769的二进制是多少 为什么C语言中int的表示范围是

为什么C语言中int的表示范围是

2024-07-13 07:20| 来源: 网络整理| 查看: 265

为什么C语言中int的表示范围是-32768~32767

做而论道_CS: 所谓的:机器数符号位原码反码 ... 都是计算机专家在【忽悠、卖拐】而已。 正负数值,存入计算机,都是以 “补码” 存放的。 计算机中,根本就没有原码和反码。 除非,你自寻烦恼,偏要在计算机中,存入原码和反码。 既然没有原码反码,那么,取反加一,计算机也就不能做了。 其实,所谓的 “补码”,也是正常的数字。  也并非一定是二进制数。 你看十进制吧,两位数:0 ~ 99。 可以有:27 + 99 = (一百) 26 也可以:27 - 1 = 26 如果你忽略进位,依旧保持两位数,  这两种算法的功能,就是相同的! 就是说,当你舍弃了进位:  负数,就能用正数代替;  加法,竟然就能实现减法运算! 在计算机中,舍弃进位,会怎样?  就可以简化硬件。  用一个加法器,便可横行天下! 由此可知,“补码”,根本就不是什么新鲜事。  它并不是:符号位原码反码取反加一。   其关键,是:【舍弃进位】。    上过小学的,都懂这个! ------------ 用两位十进制运算时,舍弃进位,就是【减去一百】。 那么,加 99,再减 100,当然就是 “-1” 了。 计算机使用二进制数。 八位二进制数是:0000 0000 ~ 1111 1111。 相当于十进制数:0 ~ 255。 如果出现 “进位 = 1”,就是:2^8 = 256。 那么,加 255,再减 256,这也就是 “-1” 了。 所以:+255 (1111 1111),就是:-1; 同理:+254 (1111 1110),就是:-2;    +253 (1111 1101),就是:-3;    。。。 。。。    +128 (1000 0000),即:-128。 以上这些正数,就是计算机专家 “发明” 的补码了。 你肯定能看出关系式:  负数的补码 = 256 + 该负数。 一般化,就是:  负数的补码 = 2^n + 该负数。  n,是二进制数的位数。 例:求-31 的 “补码” 是多少? 解:256-31 = 225 = 1110 0001 (二进制)。  这不就求出来了吗?   哪还用琢磨什么:符号位原码取反。。。!    还要啥自行车啊! 谁要是跟老外学算术,  立刻、马上、直接,就掉坑里去了!

为什么C语言中int的表示范围是-32768~32767

这可怎么办!!: 那不变的话,符号位的1去哪了呀

为什么C语言中int的表示范围是-32768~32767

那片星河为你: 可以!

为什么C语言中int的表示范围是-32768~32767

Casey996: 终于看到个讲的明白的了表情包

为什么C语言中int的表示范围是-32768~32767

Charlie_CCC: 符号位不取反兄弟。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3