做而论道_CS: 用两位十进制运算时,舍弃进位,就是:减去一百。 那么,加 99、再减 100,当然就是 “-1” 了! 计算机使用的是二进制数。 八位二进制数是:0000 0000 ~ 1111 1111。 也就是十进制数:0 ~ 255。 八位二进制的进位,是:2^8 = 256。 那么:加 255 (1111 1111),再减 256,就是 -1 ! 同理:+254 (1111 1110),就是 -2。 +253 (1111 1101),就是 -3。 。。。 。。。 +128 (1000 0000),就是 -128。 以上这些正数,就是计算机专家 “发明” 的补码! 你如果上过中学,你一定能推出关系式: 负数的补码 = 256 + 负数。 一般化: 负数的补码 = 2^n + 负数。 n,是补码的位数。 例:求-31 的补码是什么? 解:256-31 = 225 = 1110 0001 (二进制)。 这不就求出来了吗! 简不简单? 意不意外? 还需要用什么 “原码取反加一” 吗! ----------------- 忽略进位,128 ~ 255,它们都能当负数使用。 那么,加 127,会怎样呢? 加上 127,是不会产生进位的! (或者说:进位 = 0。) 舍弃进位,也就是减去一个 0 而已。 因此,127,也就当不成负数了。 所以,加 0 ~ 127,就都是 “加上正数”。 ----------------- 求正数的补码,公式也是雷同的: 正数的补码 = 256 + 该正数。 要知道,加上 256,就是出现一个进位。 进位必须舍弃,所以,256 就不用加了。 于是,公式可以简化为: 正数的补码 = 该正数。 在此处,这就证明了: 零和正数的补码,就该数字本身。 举例,就不用了吧。 计算机专家也是这么说的: 正数的补码,就是该正数。 但是,他们并没有给出证明。 为什么不加以证明呢? 因为这些专家: 弄不懂什么是进位, 更不懂什么是舍弃进位!
关于spring使用@value注解获取properties文件属性问题
二进制 真值 原码 反码 补码