请说明-1左移2位的过程

发布网友

我来回答

1个回答

热心网友

-1左移2位的过程

你是指原码 -1
还是计算机机内码(补码)的左移?

如果指8位原码,
-1 是 1000 0001
左移2位是 0000 0100 高位的 10 超界,自动丢掉。

计算机机内码,负数用补码表示
-1 的补码 是 1111 1111 (0xff)
左移2位是 1111 1100 (0xfc)
char i = -1;
printf("%2x %2x",i,i<<2);
得 0xff 0xfc

----------------------------
注:
-1 的补码 由 -1 的原码 除符号位外按位求反(成反码),反码加1是补码:1000 0001 -〉1111 1110 + 1 -〉1111 1111

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com