本文介绍了带有负移位计数左移的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
到底发生了什么吗?
A<< -5
显然,这不右移。但是,这本书我读的规定:
Obviously it doesn't right shift. But the book I'm reading states:
在一台机器,这当然pression实际执行27位的左移
我的问题是;为什么?是什么原因导致27位的左移?而带有负移位计数换挡时究竟发生了什么?谢谢你。
My question is; why? What causes a left shift of 27 bits? And what exactly happens when shifting with a negative shift count? Thank you.
推荐答案
在右侧负整数是在C语言中未定义行为。
Negative integers on right-hand side is undefined behavior in the C language.
ISO 9899:1999 6.5.7按位移位运算符§3
ISO 9899:1999 6.5.7 Bit-wise shift operators §3
整数促销活动执行
在每个操作数。的类型的
其结果是,促进了
左操作数。 如果该值
右操作数为负或
大于或等于的宽度
推广左操作数,的
行为是未定义
这篇关于带有负移位计数左移的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!