C语言如何获取左移和右移后,移出的数据出的数据?

比如说0xAA=10101010左移一次,移出1再左移一次,移出0若根据01做判断,怎么获取这个01?也就像是汇编语言中的CY位... 比如说0xAA=10101010
左移一次,移出1
再左移一次,移出0
若根据0 1做判断,怎么获取这个0 1?
也就像是汇编语言中的CY位
展开
 我来答
踽踽独行Jerry
2011-08-27 · TA获得超过169个赞
知道小有建树答主
回答量:136
采纳率:0%
帮助的人:103万
展开全部
以左移为例:
if ((x &1000 0000) == 0)
移出0;
else
移出1;
操作 x<<1;
追问
我的意思是,已经左移或者右移完了
怎样判断已经移出的数据是0还是1
追答
1.你可以按照别人说的写试试!c中嵌入汇编,不过功能有限。
2.在之后判断可能不准确!为什么一定要在之后判断呢。在运算之前判断是最好的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tattackor
2015-10-31 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:890万
展开全部
1、以左移为例:
if ((x &1000 0000) == 0)
移出0;
else
移出1;
操作 x<<1;

2、左移右移的操作方法:
1)C语言的左移和右移是以二进制数据为基准的
2)左移和右移的符号:左移的符号"<<";右移的符号">>"
3)无论左移还是右移,要移位的数据都在左边,符号右边是要移动的位数(例如移动3位)
4)右移是把该数据的二进制数全部右移N位,数据高位补零,左移则和右移相反。
5)右移举例--例如将5右移一位:5 >> 1(符号左边是被移位的数据,符号右边是要移位的位数)
将5转换为二进制为0B00000101 ,右移后的结果是:0B00000010
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-08-27
展开全部
用inline汇编,查看CF
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fyg246
2011-08-27 · TA获得超过862个赞
知道小有建树答主
回答量:1296
采纳率:33%
帮助的人:380万
展开全部
你可以直接逐位进行判断啊。
追问
如果其他的运算占用了CY位,那怎么才能正确判断出
CY位就是左移或者右移出的呢?
追答
我的意思是,在移位操作前,先对目标位进行读取判断。
或者,可以考虑在C代码中嵌一段汇编,这是很常见的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式