有符号位数值与无符号位数值左移右移所带来的影响

汇编作业题2.23B中的问题

 对于无符号数以及有符号数值左移效果一致,如:

//默认i为32位
int i = 1;  //i = 0000 0000 0000 0000 0000 0000 0000 0001
i = i << 31;//i = 1000 0000 0000 0000 0000 0000 0000 0000, i = -2147483648
unsigned j = 1;
j = j << 31;//j = 2147483648

而右移则有不同的效果,有符号数值的符号位不会发生变化,如:

int i = -2148473638;//i = 1000 0000 0000 0000 0000 0000 0000 0000
i = i >> 1;         //i = 1100 0000 0000 0000 0000 0000 0000 0000
发布了21 篇原创文章 · 获赞 36 · 访问量 7244

猜你喜欢

转载自blog.csdn.net/weixin_44397852/article/details/95767998