看极客学院的java视频上讲到“大类型转换小类型时,源数据的数据位变成目标数据的符号位”,这句话不是很明白,有哪位好心人可以给讲解一下吗?
你对“符号位”这个概念理解吗?
符号位不是最高位,用来表示正负的吗?
@sflik: 你能举一个大类型和小类型的例子吗?
@Launcher:
int i = 129; Byte b = (int)i; 129=10000001; 逐位取反在加1 01111111 =127 因为10000001的最高位是1,所以取负,b=-127 你看我你理解的对吗
@sflik: 对。最直观的方式,就是打开 Windows 的计算器,选择程序员模式,然后输入 129,然后选择 字节。
@Launcher: 我就是不明白那句话中的数据位是什么意思,可以给讲一下吗?
@sflik: int i = 129 => 00000000 00000000 00000000 10000001
第 7 位的 1 是 i 的数据位。
byte b = i; => 10000001
原来 i 的第 7 位的 1 变成了 b 的第 7 位(最高位,符号位)。
@Launcher: 就是最后一位的1?
@sflik: 从右往左数
@Launcher: 吆西,搜噶斯奈~