2.13 2.13.1 [5]〈§2.4〉对于add指令$t0,$s0,$s1,其取值范围是多少2.13.2 [5]〈§2.4〉对于指令sub $t0,$s0,$s1,会导致溢出的$s1的值范围是多少?2.13.3 [5]〈§2.4〉对于指令sub $t0,$s1,$s我试着把它转换成二进制并检查32位。
6qfn3psc1#
井溢流有两种:有符号和无符号。有符号溢出是指寄存器的值跨越0x7FFFFFFFFFFFFFFF-0x8000000000000000边界。(CPU是32位还是64位决定了该数字范围内有多少个尾随的F和0,但它始终代表该边界。)另一方面,无符号溢出表示从0到0xFFFFFFFFFFFFFFFF的二进制补码回绕(同样,CPU的整数大小决定了该数字中有多少个F)。
0x7FFFFFFFFFFFFFFF-0x8000000000000000
0xFFFFFFFFFFFFFFFF
1条答案
按热度按时间6qfn3psc1#
井溢流有两种:有符号和无符号。有符号溢出是指寄存器的值跨越
0x7FFFFFFFFFFFFFFF-0x8000000000000000
边界。(CPU是32位还是64位决定了该数字范围内有多少个尾随的F和0,但它始终代表该边界。)另一方面,无符号溢出表示从0到
0xFFFFFFFFFFFFFFFF
的二进制补码回绕(同样,CPU的整数大小决定了该数字中有多少个F)。