java中的简单问题

在初步培训中,老师给了一下的题目:将一个整数110从右端开始的4~7位变为0.(我实在不明白这题是什么意思?老师提示用位运算符和移位运算符解答)谢谢大侠帮忙。。。... 在初步培训中,老师给了一下的题目:将一个整数110从右端开始的4~7位变为0.(我实在不明白这题是什么意思?老师提示用位运算符和移位运算符解答)
谢谢大侠帮忙。。。
展开
 我来答
卫星3D看世界
2009-08-13 · TA获得超过909个赞
知道小有建树答主
回答量:461
采纳率:66%
帮助的人:170万
展开全部
liushebiao 不错的解决方案,俺也有一个不错的,先解决你的疑问先:
java 里面用 32bit 比特来装载一个 整数(int),你老师出这个题目就是要你把
110 在计算机里的表示2进制串的 4到7 位变为零成为另外一个数:
计算机里 110 的2进制串表示是: 00000000 00000000 00000000 01101110
十六进制串表示就是: 0x0000006E
那么,从右端4~7位(从零开始计数)变为0,就该变成如下:
2进制串:00000000 00000000 00000000 00001110
十六进制串: 0x0000000E
也就是十进制中的 14

你可以采用 与 计算符(&)快速搞定:
public class Hello {
public static void main(String[] args12) throws Exception{
int num=110;
System.out.println( 110&0xFFFFFF0F );
}
}
测试结果: 14,不懂的话可以查看一下 java 基础入门中的单目运算符。。

可以学习一下这篇文章:
http://lujiadontcry.javaeye.com/blog/304978
liushebiao
2009-08-13 · TA获得超过3336个赞
知道小有建树答主
回答量:724
采纳率:0%
帮助的人:401万
展开全部
我估计你们老师说的并不是整数110,应该是二进制数110

代码实现如下

public class IntBitOperation {
public static void main(String[] args) {
int num = 110;// 原始的待修改的数字
String numStr = String.valueOf(num);// 用字符串将其保存为二进制数
int temp = Integer.valueOf(numStr, 2);// 将二进制数转化为十进制的int型
temp = temp << 4;// 将原数左移四位
numStr = Integer.toBinaryString(temp);// 将位移操作后的数字转化为二进制字符串
System.err.println(numStr);// 输入修改结果
num = Integer.parseInt(numStr);// 将字符串类型转化为int类型
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
acmesoft
2009-08-13 · TA获得超过124个赞
知道小有建树答主
回答量:301
采纳率:100%
帮助的人:93.7万
展开全部
先将110转换为二进制数,然后用位运算符和移位运算符搞定咯。。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式