VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 667|回复: 4

请教个问题,程序没报错误运行却总是不正确!

[复制链接]

1

主题

5

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-3-7 10:30:01 | 显示全部楼层 |阅读模式
#include "stdio.h"
main()
{
        unsigned long x;
        int m,y;
scanf("%d\n",&m);
x=100;
x>>(m-1);
y=x&&000000000000001;
printf("y=%d\n",&y);
}


ctrl+f7显示如下:
--------------------Configuration: Text2 - Win32 Debug--------------------
Compiling...
Text2.c
D:\c\mxm\Text2.c(8) : warning C4552: '>>' : operator has no effect; expected operator with side-effect

Text2.obj - 0 error(s), 1 warning(s)
请高手指导,谢谢!
回复

使用道具 举报

0

主题

73

帖子

46.00

积分

新手上路

Rank: 1

积分
46.00
发表于 2020-5-24 19:45:01 | 显示全部楼层
x>>(m-1);
这样没任何效果啊。
你是不是想:
x = x >> (m - 1)
啊?
或者:
x >>= (m - 1);
回复

使用道具 举报

0

主题

73

帖子

46.00

积分

新手上路

Rank: 1

积分
46.00
发表于 2020-5-24 20:45:02 | 显示全部楼层
你还别说,偶曾见到好几家公司喜欢出这种面视题:
unsigned int i = 1;
i << 2;
问你i现在等于几,呵呵。
回复

使用道具 举报

0

主题

12

帖子

11.00

积分

新手上路

Rank: 1

积分
11.00
发表于 2020-5-24 22:45:01 | 显示全部楼层
#include "stdio.h"
void main()
{
        unsigned long ;
        int m,y;
scanf("%d",&m);
x=100;
x=x<<m-1;
y=x&000000000000001;
printf("y=%d\n",y);
}
回复

使用道具 举报

1

主题

5

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-6-10 16:00:01 | 显示全部楼层
我知道了
是x>>=(m-1)
&&应该是&
......
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表