将一个数从某个位数符号扩展到一个更大的位数,可以将符号位复制到新格式新增的高端各位,例如,为了将一个8位的数符号扩展到16位,只需将8位数的第7位复制到16位数的第8 .. 15位,而将一个16位数符号扩展到一个双字,只需要将第15位复制到双字的第16 .. 31位。。。。
为什么是把被扩展数的倒数第二位向高位复制,而不是将新增的位直接用零补上,如果倒数第二位是1,那不是直接把数改变了吗/
将一个数从某个位数符号扩展到一个更大的位数,可以将符号位复制到新格式新增的高端各位,例如,为了将一个8位的数符号扩展到16位,只需将8位数的第7位复制到16位数的第8 .. 15位,而将一个16位数符号扩展到一个双字,只需要将第15位复制到双字的第16 .. 31位。。。。
为什么是把被扩展数的倒数第二位向高位复制,而不是将新增的位直接用零补上,如果倒数第二位是1,那不是直接把数改变了吗/
是这样的,举个简单的8位数例子,比如10010110,从左往右依次是第7位、第6位……第2位、第1位、第0位。如果从右往左看就是从第0位、第1位依此增加。
都是从0开始计数的。16位的就是第15位是最高位,第0位是最低位。
32的依此类推。