早教吧 育儿知识 作业答案 考试题库 百科 知识分享

问下,四位原码1110拓展至八位11111110,补码也能拓展吗?为什么拓展求补与求补再拓展结果不一样

题目详情
问下,四位原码1110拓展至八位11111110,补码也能拓展吗?为什么拓展求补与求补再拓展结果不一样
▼优质解答
答案和解析
不能说正确与否,没有所谓的四位原码的,一般计算机中有字节、字、双字、四字,没有四位的.
扩展不能叫拓展,如果把一个字节扩展为一个字,其实应该说是带符号扩展和不带符号扩展两种方式.
所谓的不带符号扩展,就是将要扩展的字节,字,或是双字看作一个无符号数.进行扩展时只须前边补0即可,没有任何的其他方法,一般是从字节扩展为字,从字扩展为双字,从双字扩展为四字,从四位原码扩展,难道是非压缩BCD码?
所谓的带符号扩展,就是将要扩展的字节,字或双字看作一个带符号数进行扩展的,其扩展方法是如果符号位(最高位)是0,前边全补0,如果是1,前边全补1.也就是说不管怎么扩展,前边全补符号位.
这里要说明一下扩展的意思,扩展的意义在于原来表示的数据范围小,现在需要一个大的表示范围,所以才使用扩展.扩展的根据是与原来小范围的数字表示相同,比如十进制下的5作为带符号数,字节表示是(0000 0101),现在可能要加一个数字超出-128~127之间,所以要表示为更大的范围,那么就需要将数字5进行带符号扩展,也就是用字表示5,(0000 0000 0000 0101),换句话来说,字表示的5就是字节表示的5的带符号扩展.
至于补码原码的概念其实与扩展是完全两码事的.不管你用什么样的手段,扩展后的与扩展前的表示必须是同一数字.扩展只是增加一个表示范围而已,与其本身没有关系的.
扩展是扩展,求补是求补两者没有联系.再者扩展还分为带符号扩展与不带符号扩展,比如1111 1110如果是一个带符号数表示的就是-2,带符号扩展后就是(1111 1111 1111 1110)仍然表示是带符号的数字是-2;如果1111 1110是无符号数表示的是254,不带符号扩展后就是(0000 0000 1111 1110)仍然表示不带符号的254!这就是扩展的意义.
求补是一个运算,扩展也是一个运算,两者都表示固定的方式.
扩展后求补与求补后扩展的结果肯定不一定完全相同的.因为这不是扩展的求法,你理解出现了极大的错误的!