二进制:
将每个余数倒着输出来,怎样实现,s=num%2+s;每次得到的数都进入到等号右边的s中,那么第二个余数就是num%2,加在s的前面,这就是字符串的拼接,切记不能交换两者的位置。
八进制:
同二进制一样
十六进制:
十六进制不外乎就是写一个数组:
char[] arr = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
假如给一个17这样的十进制数,将其转换成十六进制,只需要数17,最后第十七次落在数组上的字符加上数的次数。笔者定义的y就是最后落在数组上的位置。
package com.kaifamiao.day13CDSN;import java.util.Scanner;public class JinZhi {public static void main(String[] args) {Scanner sc=new Scanner(System.in);System.out.println("请你输入一个十进制数:");long n = sc.nextLong();JinZhi jz=new JinZhi();System.out.println("二进制数为:"+jz.twoWay(n));System.out.println("---------------------------------");jz.eightWay(n);System.out.println("八进制数为:"+jz.eightWay(n));System.out.println("---------------------------------");System.out.println("十六进制为:"+jz.sixteen(n));}//二进制public String twoWay(long num){String s="";while (num!=0){s=num%2+s;num=num/2;}return s;}//八进制public String eightWay(long num){String s="";while (num!=0){s=num%8+s;num=num/8;}return s;}//十六进制public String sixteen(long num){String v="";char s=0;long y;char[] arr = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };while (num!=0){y=num%16;num=num/16;s=arr[(int)y];v=s+v;}return v;}}