首页 新闻 会员 周边 捐助

大类型转换小类型时,源数据的数据位变成目标数据的符号位

0
悬赏园豆:50 [已解决问题] 解决于 2015-04-15 12:43

看极客学院的java视频上讲到“大类型转换小类型时,源数据的数据位变成目标数据的符号位”,这句话不是很明白,有哪位好心人可以给讲解一下吗? 

sflik的主页 sflik | 初学一级 | 园豆:84
提问于:2015-04-14 21:17
< >
分享
最佳答案
0

你对“符号位”这个概念理解吗?

收获园豆:50
Launcher | 高人七级 |园豆:45050 | 2015-04-15 10:21

符号位不是最高位,用来表示正负的吗?

sflik | 园豆:84 (初学一级) | 2015-04-15 10:50

@sflik: 你能举一个大类型和小类型的例子吗?

Launcher | 园豆:45050 (高人七级) | 2015-04-15 11:13

@Launcher: 

int i = 129;
Byte b = (int)i;

129=10000001;
逐位取反在加1 
01111111 =127
因为10000001的最高位是1,所以取负,b=-127
你看我你理解的对吗
sflik | 园豆:84 (初学一级) | 2015-04-15 11:20

@sflik: 对。最直观的方式,就是打开 Windows 的计算器,选择程序员模式,然后输入 129,然后选择 字节。

Launcher | 园豆:45050 (高人七级) | 2015-04-15 11:25

@Launcher: 我就是不明白那句话中的数据位是什么意思,可以给讲一下吗?

sflik | 园豆:84 (初学一级) | 2015-04-15 11:38

@sflik: int i = 129  => 00000000 00000000 00000000 10000001

第 7 位的 1 是 i 的数据位。

byte b = i; => 10000001

原来 i 的第 7 位的 1 变成了 b 的第 7 位(最高位,符号位)。

Launcher | 园豆:45050 (高人七级) | 2015-04-15 11:41

@Launcher: 就是最后一位的1?

sflik | 园豆:84 (初学一级) | 2015-04-15 11:52

@sflik: 从右往左数

Launcher | 园豆:45050 (高人七级) | 2015-04-15 12:31

@Launcher: 吆西,搜噶斯奈~

sflik | 园豆:84 (初学一级) | 2015-04-15 12:43
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册