博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数组---进制转换(查表法)
阅读量:6988 次
发布时间:2019-06-27

本文共 1030 字,大约阅读时间需要 3 分钟。

package com.shuzu;
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

你可能感兴趣的文章
MYSQL 函数、自定义函数 function
查看>>
Python爬虫之简单爬虫框架实现
查看>>
python isinstance内建函数的使用
查看>>
老师不能把你怎样,但外面的世界可以!
查看>>
css居中div的几种常用方法
查看>>
css3
查看>>
根据某个元素做相对定位
查看>>
C# Window编程随记——ClickOnce程序部署
查看>>
小白系列-免费广告路由器web认证设置(2)
查看>>
Top 16 Java 应用类 - 这些功能再也不用自己写了
查看>>
面试题之矩阵与转置矩阵相乘
查看>>
linux光盘、U盘的挂载与卸载
查看>>
linux sudo命令
查看>>
LeetCode-最长回文子串
查看>>
【HDOJ】3400 Line belt
查看>>
JVM Guide
查看>>
大数模版
查看>>
HDU4044 GeoDefense(树形dp+分组背包)
查看>>
Microsoft .Net Remoting系列专题之三:Remoting事件处理全接触
查看>>
JavaScript常用标签和方法总结
查看>>