| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1300 人关注过本帖
标题:将一个整数110从右端开始的4~7位变为0。
只看楼主 加入收藏
godlw
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2007-10-13
收藏
 问题点数:0 回复次数:8 
将一个整数110从右端开始的4~7位变为0。
将一个整数110从右端开始的4~7位变为0。
高手帮我看下对不对啊?
class MyLesson3
{
public static void main(String [] args)
{
int i=0x0000000f;
int d=0x00000006;
i=i<<3;
i=~i;
d=d&i;
System.out.println(i);
System.out.println(Integer.toHexString(d));
}
}
搜索更多相关主题的帖子: 整数 
2007-10-24 14:31
zwfc
Rank: 1
等 级:新手上路
帖 子:65
专家分:0
注 册:2005-10-17
收藏
得分:0 

先把这个数表示成 二进制 n,然后再定义一个二进制数m,它的右端开始的4~7位,与n相同,其他位与n相反。
然后将 n 异或 m得到的便是结果。


2007-10-25 12:30
godlw
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2007-10-13
收藏
得分:0 

谢谢啊


2007-10-25 12:49
风之舞鹤
Rank: 1
等 级:新手上路
帖 子:180
专家分:0
注 册:2007-6-2
收藏
得分:0 
2楼的好象不对啊,应该是m的4到7位取0,其他位取1,与n相与!

2007-10-28 01:14
godlw
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2007-10-13
收藏
得分:0 
我还是不太明白

2007-10-28 18:07
wshyj18
Rank: 1
等 级:新手上路
帖 子:124
专家分:0
注 册:2007-5-14
收藏
得分:0 
先定义一个右四位都为1的数,再向左移四位,再取反,再与110的二进位相与

2007-10-29 20:22
风之舞鹤
Rank: 1
等 级:新手上路
帖 子:180
专家分:0
注 册:2007-6-2
收藏
得分:0 
还需要这么复杂吗?

2007-10-30 17:53
zwfc
Rank: 1
等 级:新手上路
帖 子:65
专家分:0
注 册:2005-10-17
收藏
得分:0 

嗯,搞错了. 3楼的应该是正确的.


2007-10-31 12:45
田里兵蜂
Rank: 1
等 级:新手上路
威 望:2
帖 子:604
专家分:0
注 册:2007-1-29
收藏
得分:0 
int i=7;
int j=32-4-1;
System.out.println((d>>>i<<i)|(d<<j>>>j));
取左再取右,然后相或
2007-10-31 23:00
快速回复:将一个整数110从右端开始的4~7位变为0。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027844 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved