10.11 一团浆糊
一、
typecast(uint8(255),‘int8’)
ans=-1
uint8(255) 结果 1111 1111
对1111 1111取补码,1000 0001(也就是ans=-1)
二、
对8位有符号二进制数,原码、反码和补码所能表示的范围如下:
原码:1111 1111B~0111 1111B(-127~+127)
反码:1000 0000B~0111 1111B(-127~+127)
补码:1000 0000B~0111 1111B(-128~+127)
三、
对一个正数的原码取反加1,得到这个正数对应负数的补码。
十进制数 原码 补码
6 0000 0110
对其原码取反加1,得到-6的补码
-6 1000 0110 1111 1010 (6的原码取反加1得到-6的补码)
-6的原码相比6的原码,多出 1000 0000,将他看做补码,其对应的原码1000 0000,数字位同时当做符号位即-128
-128 1000 0000 0111 1111