黑马程序员技术交流社区
标题:
进制转换问题
[打印本页]
作者:
常佳杰
时间:
2012-6-23 16:02
标题:
进制转换问题
public class Test{
/**
* @param args
*/
public static void main(String[] args) {
tohex(61);
tobit(90);
}
public static void tohex(int num){
StringBuffer sb = new StringBuffer();
for(int x=0;x<8;x++){
int temp = num&15;[color=Red]//打印结果是0000003d,为什么这改成int temp = num%15;打印结果就成了00000031了,
//为什么结果就错了呢? &和%这两个符号有什么区别?[/color]
if(temp>9){
sb.append((char)((temp-10)+'a'));
}
else
sb.append(temp);
num = num>>>4;
}
System.out.println(sb.reverse());
}
public static void tobit(int num){
StringBuffer sb = new StringBuffer();
while(num>0){
sb.append(num%2)[color=Red];//打印结果是111,竟然改成&,打印结果就成了022,这是怎么回事?请详解![/color]
num=num/2;
}
System.out.println(sb.reverse());
}
}
复制代码
想不通..
作者:
闾丘日月
时间:
2012-6-23 16:46
你的问题在我眼里和这个问题没什么区别
int x = 2,int y = 1;
int z = x+y; ///为什么这里讲+换成-就不行了,+和-有什么区别
System.out.println(z);
//想不通。
规则是人家定的,你不想按照人家的规则来要么就不用人家的东西,你自己定义运算符让2+1=1,2-1=3。你这么做,只要自己觉得爽怎么都行对么?
懒得说太多了,这两个运算符一个是位运算符,一个是求模的运算符。
作者:
范家鹏
时间:
2012-6-23 17:53
&是位与运算
比如1&15在内存中就是:0000 0001
& 1111 1111
0000 0001
0和1 &1都等于他本身,
这里用位与是为了取到那四位,
%是取模运算,
比如5%12=2
你还不知道%和&是干嘛的,还是先去看看运算符那块,还有通过位运算转进制的原理再写代码吧,
作者:
qq3356441
时间:
2012-6-23 19:53
&和%这两个符号不是同一个功能
%是算术运算符 取的是余数
& 位运算符 取的是二进制中的有效位。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2