永发信息网

c/c++ 语言 左右移位操作

答案:3  悬赏:30  手机版
解决时间 2021-12-31 10:52
c语言里,负数的左移怎么移?是对内部补码的移动?符号位要不要移动?
最佳答案
这是我学习位移时的笔记,很清楚。负数的位移是要看编译器的。

7,左移运算符(<<)是双目运算符,其功能是把"<<"运算符左边的运算数的各二进位全部左移若干位,移动的位数由"<<" 运算符右边的数指定,高位丢弃,低位补0。 如:a<<2 //代表a的二进数向左移动2位。
//实际上左移一位相当于该数乘以2,称动2位 相当于该数乘以4,以此类推。这种情况只限于移动位不含1的情况。
8,右移运算符(>>)是双目运算符,其功能是把">>"运算符左边的运算数的各二进位全部右移若干位,移动的位数按">>" 运算符右边的数指定。
//在进行右移时对于有符号的数需要注意符号问题,当为正数时,最高位补0,而为负数时,最高位补0或1取决于编译 系统的规定,移入0的称为"逻辑右移",移入1的称为"算术右移"。(visualC++)是以算术右移。
循环移位
1,循环移位就是将移出的低位放到该数的高位或者移出高位放到该数的低位。
如:a.00110000,00000000,11010000,00001011 左循环移动4位
z.10110000,00000000,00000000,00000000 先左移32-4=28位后的结果。 公式为:z=a<<(32-n) //此时n=4
y.00001100.00000000,00001101.00000000 再右移4位的结果。 y=a>>n
a.10111100.00000000,00001101.00000000 这就是循环左移4位的结果。 a=z|y
2,右循环移动的方法类似,只需要转换即可。
全部回答
物理内存只是一个保存数据的东西,具体的操作是由cpu执行的啊 假设一个数据在物理内存上,为了位移,我们首先把它取出来到cpu里,不管它在内存里是什么方式,在cpu里都可以认为它是一致的,理解没? 然后在cpu里面进行位移操作,至于是否要再写入到物理内存中,那是程序的问题,例如你写 首先因为所有运算都是cpu完成的,所以也不能存在直接从物理内存上左移右移的问题,其次内存到底是大头端还是小头端的,对c/c++程序员,基本上可以认为是透明的,无所谓的。你有见过哪本c/c++程序书里面写,如果平台是大头端那么程序要这么这么写,平台是小头端,程序要这么这么写的吗?没有吧?为什么呢,因为那无所谓 假设你写 int a = 0x000000ff; int b = a<<8; 那么过程就是把a的内存数据取出到cpu,位移计算,然后保存到b这个变量的数据空间去
是的, 如     unsigned a = -1; // (a = 0xffffffff)     int b = -1; // (b = 0xffffffff)     a >>= 5; //(a = 0x07ffffff)     b >>= 5; // (b = 0xffffffff)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我们知道,分式和分数有着很多的相似点.小学
嘴欠是什么意思
城市管理行政执法沙溪中队地址在什么地方?想
怎样在电脑上做成一个表格文件?越详细越好,
北京现代朗动2015款1.6l自动领先和2015自动尊
易燃液体 危害标识H227什么意思
驾校体检视力不过怎么办
下列说法错误的是A.大气压随高度的增加而减小
有人看过卡耐基的书吗 觉得怎么样?
吴江区七都城市管理行政执法队办公地址在什么
电子货币是否是货币最终的存在形式?为什么?
孕早期孕酮低吃什么
吴江区盛泽城市管理行政执法大队办公位置在哪
你所在的城市最近计划修建地铁,这件事引发了
开门用英语怎么说
推荐资讯
废旧的院子可以用来干什么生意好?
风湿病没发作的时候去检查能检查出来吗
下雪英语怎么写
经常吃面条会发胖吗
单选题对于某些离子的检验及结论一定不正确的
男友删了你qq微信之后还会和好吗
生活中常用洗涤剂和汽油去除油污,请分别简要
CF怎么刷扳手?????
说了再见表达什么意思
求问含羞草种子怎样才能播种成功啊?要详细点
单选题2010年世界博览会将于2010年5月1日在中
怎样看适不适合学声乐
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?