1.32678��Դ��
32678��Դ��
首先你定义的a是个占2个字节的有符号数 在计算机里是以位2进制数存储的最高位为符号位
所以它可以表示的数范围为-~
所以对于short int a来说就是它的最大值
就是 它最高位是0 表示正的,
当a=,码原码滴滴源码修改教程b=a+1时 +1出现了溢出的情况得到 即- (在2进制中 -1的原码是 所以你就应该知道)
2进制数的-0 和0的区别就是 和 的区别但在使用a=-0和a=0赋值的结果都是 这是编译器的原因所以
对于ffff 7ffff我的猜测 它的前面的ffff应该cpu中存储“b”值的上个存储单元中的数值它默认是 这个当出现计算溢出时计算机把上个存储单元的数值和b值当成计算结果给输出出来了所以就会出现ffff 7ffff 而a值是在-~ 范围内不是溢出数据所以输出正常