public class shuzuJinZhiZhuanHuan {
* @param a 所要转换的十进制数,b 不同进制所要与(&)的数不同,wei 向右移动几位
* 查表法
* 十进制转二进制
* 十进制转十六进制
* 定义数组字符表
* 定义数组容器arr,长度为32位(二进制) or 8位(十六进制)
* 定义指针pos
* 循环传入参数(int a),判断a的值如果不等于0继续循环
*
* 60—0000 0000 0000 0000 0000 0000 0011 1100
* &15 0000 0000 0000 0000 0000 0000 0000 1111
* ———————————————-
* 0000 0000 0000 0000 0000 0000 0000 1100 = 12 ‘C’
public static void main(String[] args) {
// TODO Auto-generated method stub
trans(60,15,4);
}
public static void trans(int a,int b,int wei){
char[] temp = { ‘0’,’1′,’2′,’3′,
‘4’,’5′,’6′,’7′,
‘8’,’9′,’A’,’B’,
‘C’,’D’,’E’,’F’ }; //字符表
char[] arr = new char[32]; //定义容器,用来存储转换后的字符数组
int su = 0; //定义临时变量,用于存储与&之后的结果
int pos = arr.length; //定义指针下标,从数组的最后一位开始,用于从后往前存,将结果反转
while(a!=0){ //循环移位之后的十进制数
su = a & b; //将与&的结果存入临时变量su中
arr[–pos] = temp[su]; //temp[su],将字符表中下标位su的字符存入arr中,–pos,从数组的最后一位开始存,每次减一向前移动一位
a = a >>> wei; //将十进制数想右移动4位(十六进制) or 1位(二进制),一遍得到下一个四位的值
转载于:https://www.cnblogs.com/limpoo/p/3313470.html
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/110060.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...