黑马程序员技术交流社区
标题:
递归问题
[打印本页]
作者:
焦健
时间:
2013-2-22 20:34
标题:
递归问题
使用递归的方式可以将十进制数转换为二进制数,但是不能处理负数的情况,请问怎么使用递归的方式解决。。
public static void toBin(long value){
//判断value除以2的结果是否大于0,如果大于0就进行递归。
if(value/2>0){
toBin(value/2);
}
System.out.print(value%2);//打印value%2的结果
}
复制代码
作者:
江苏孙浩
时间:
2013-2-22 20:38
可以试试取反加1.
先去对应整数,记录下其二进制。
然后取反
然后+1(模拟二进制加法实现)。
作者:
谢波
时间:
2013-2-22 20:45
public static void toBin(long value)
{
if(value >>> 1 != 0)
toBin(value >>> 1);
System.out.print(value & 1);
}
复制代码
作者:
焦健
时间:
2013-2-22 20:54
谢波 发表于 2013-2-22 20:45
非常感谢。。
作者:
偏執旳、靑春
时间:
2013-2-22 20:58
1.先取得负数的绝对值,用mbs方法
2.用~取反符号取反
3.加0x1就OK了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2