java中的简单问题
在初步培训中,老师给了一下的题目:将一个整数110从右端开始的4~7位变为0.(我实在不明白这题是什么意思?老师提示用位运算符和移位运算符解答)谢谢大侠帮忙。。。...
在初步培训中,老师给了一下的题目:将一个整数110从右端开始的4~7位变为0.(我实在不明白这题是什么意思?老师提示用位运算符和移位运算符解答)
谢谢大侠帮忙。。。 展开
谢谢大侠帮忙。。。 展开
3个回答
展开全部
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
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
展开全部
我估计你们老师说的并不是整数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类型
}
}
代码实现如下
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类型
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先将110转换为二进制数,然后用位运算符和移位运算符搞定咯。。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询