码迷,mamicode.com
首页 > 编程语言 > 详细

java 十进制数(支持负数)转n进制(n在[2,36]之间)

时间:2014-10-03 11:05:24      阅读:289      评论:0      收藏:0      [点我收藏+]

标签:ar   java   c   on   amp   r   as   har   return   

public class DecimalTONBigit {

	/**
	 * 十进制数(可以为负数)转n(n在[2,36]之间)进制
	 * @author wl
	 */
	public static final int N=36;//N表示n进制
	public static void main(String[] args) {
		int data=71;//data表示要转换的数
		toNBigit(data,N);
	}
	
	private static void toNBigit(int data, int a) {
		if(a>36||a<2){
			System.out.println("不支持此进制!!!");
			return;
		}
		if(data<0){
			data=((-1*data)^((1<<31)-1))+1;//将负数变为正数,再取反(^((1<<31)-1)即为取反),最后再加1;
		}
		int n=(data%a);
		int m=(data/a);
		
		if(m==0){
			printNBigitNum(n);
		}else{
			toNBigit(m,a);
			
			printNBigitNum(n);
		}
	}
	
	private static void printNBigitNum(int n) {
		if(n>9&&n<=36){
			System.out.print((char)((n-10)+65));
		}else if(n>36){
			System.out.println("不支持此进制!!!");
			return;
		}else{
			System.out.print(n);
		}
	}
}

输出:

1Z

java 十进制数(支持负数)转n进制(n在[2,36]之间)

标签:ar   java   c   on   amp   r   as   har   return   

原文地址:http://blog.csdn.net/tmwl0728/article/details/39741555

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!