

负数原码求补码: 逐位取反再加1
负数补码求原码: 减1再逐位取反





运行结果为7



强制转换超出范围

结果是-126
解析 130的二进制是00000000 00000000 00000000 10000010
运算的时候是以补码进行运算 10000010是-126补码
减1求-126反码 10000001
除符号位其余逐位取反 得-126原码 11111110

结果是44
解析 300的二进制是 00000000 00000000 00000001 00101100
运算的时候是以补码进行运算00101100是44的补码
与其原码相同

上面的会提示错误: 可能会损失精度


第三行报错: 可能损失精度 右边b+1是byte和int进行混合运算会提升为int型
而第二行两句等价

第一句可能会损失精度
原文:https://www.cnblogs.com/albieh/p/12179071.html