我必须在我的java代码中计算超过2个字符的校验和。
如果它的' HI
- > ASCII值是
72 - 01001000
73 - 01001001
--------------
10010001
01101110 - 1's complement (110 in decimal) - checksum
我通过了72,73和110.如果我调试代码,72 + 73会在我的代码中产生-111。如果我以十进制格式计算它的145.为什么是-111?
byte[] bytes = "01001000 01001001 01101110".getBytes();
for(byte b: bytes) {
sum += b;
}