java通过移位转16进制

public class Main {
    public static void main(String []args)
    {
        Main main = new Main();
        System.out.println("main: "+main.Hex(j));
        System.out.println("Sys: "+Integer.toHexString(j));
    }
    private String Hex(int i)
    {
        String string="";
        String temp = Integer.toBinaryString(i);
        int len = temp.length();
        System.out.println(temp);
        System.out.println(len);
        while(len%4!=0)
        {
            temp="0"+temp;
            len=temp.length();
        }
        while(len>0)
        {
            //System.out.println(len+" "+string);
            int bit = 0;
            if(temp.charAt(len-1)==‘1‘)
            {
                bit+=1;
            }
            if(temp.charAt(len-2)==‘1‘)
            {
                bit+=2;
            }
            if(temp.charAt(len-3)==‘1‘)
            {
                bit+=4;
            }
            if(temp.charAt(len-4)==‘1‘)
            {
                bit+=8;
            }
            switch (bit) {
            case 10:
                string=‘A‘+string;
                break;
            case 11:
                string=‘B‘+string;
                break;
            case 12:
                string=‘C‘+string;
                break;
            case 13:
                string=‘D‘+string;
                break;
            case 14:
                string=‘E‘+string;
                break;
            case 15:
                string=‘F‘+string;
                break;

            default:
                string=bit+string;
                break;
            }
            len-=4;
        }

        return string;
    }
}
时间: 2024-08-01 21:50:32

java通过移位转16进制的相关文章

Java中byte与16进制字符串的互相转换

Java中byte用二进制表示占用8位,而我们知道16进制的每个字符需要用4位二进制位来表示(23 + 22 + 21 + 20 = 15),所以我们就可以把每个byte转换成两个相应的16进制字符,即把byte的高4位和低4位分别转换成相应的16进制字符H和L,并组合起来得到byte转换到16进制字符串的结果new String(H) + new String(L).即byte用十六进制表示只占2位. 同理,相反的转换也是将两个16进制字符转换成一个byte,原理同上. 根据以上原理,我们就可

Java字节数组和16进制字符串的互相转化

背景基础知识: 1.字符编码的相关知识(转自http://blog.csdn.net/llwan/article/details/7567906) 1.1. "字符"是由数字来表示的 先来重新了解一下计算机是如何处理"字符"的,这个原理是大家必须记住的,特别是在用JAVA写程序的时候,万万不可模糊.我们知道,计算机把任何东西都用数字来表示,"字符"也不例外.比如我们要显示一个阿拉伯数字"3",在我们的PC里,其实并不是仅仅用一

Java中byte与16进制字符串的互相转换(转)

Java中byte用二进制表示占用8位,而我们知道16进制的每个字符需要用4位二进制位来表示(23 + 22 + 21 + 20 = 15),所以我们就可以把每个byte转换成两个相应的16进制字符,即把byte的高4位和低4位分别转换成相应的16进制字符H和L,并组合起来得到byte转换到16进制字符串的结果new String(H) + new String(L).即byte用十六进制表示只占2位. 同理,相反的转换也是将两个16进制字符转换成一个byte,原理同上. 根据以上原理,我们就可

Java随笔:小心16进制负数

看看下面这段代码输出什么: System.out.println(Long.toHexString(0x100000000L + 0xcafebabe)); 一个long+一个int,int转为long,再与前者相加.应该是 0x1cafebabe 没错. 结果输出的是:cafebabe 这里隐藏了一个问题:10进制int,复数用负号表示.那么16进制的int呢? 是的,16进制的负数用的是二进制表示中首位1表示负数. 0xcafebabe 的 二进制表示: 110010101111111010

java中byte[] 和16进制字符串互转

//将byte[]转换为16进制字符串 public static String byte2hex(byte[] b) { StringBuilder hs = new StringBuilder(); String stmp; for (int n = 0; b != null && n < b.length; n++) { stmp = Integer.toHexString(b[n] & 0XFF); if (stmp.length() == 1) hs.append(

java 16进制与字符串直接相互转换

java 16进制与字符串直接相互转换 CreationTime--2018年7月12日09点39分 Author:Marydon 1.16进制转换成字符串 /** * 16进制直接转换成为字符串 * @explain * @param hexStr 16进制字符串 * @return String */ public static String fromHexString(String hexString) { // 用于接收转换结果 String result = ""; // 转

2进制,10进制,16进制,补码和移位

逢二进一,逢十进一,十六进制 10110101(2) = 128+32+16+4+1 = 181(10) b 5(16) = b*16+5 = 11*16+5 = 181(10) 2进制 int n = 45; System.out.println(Integer.toBinaryString(n)); 计算机的内部(Java)只有2进制数据, 在显示的时候编程语言提供API将2进制转换为10进制显示出来. 计算机只能处理2进制数据, 利用编程语言提供的算法支持了10进制 Java中用于支持2进

Java 将字节转化为16进制字符串

很多时候我们需要将字节数组转化为16进制字符串来保存,例如做I/O字节流操作的时候,尤其在很多加密的场景中应用都比较广泛. Java中byte用二进制表示占用8位,而我们知道16进制的每个字符需要用4位二进制位来表示,所以我们就可以把每个byte转换成两个相应的16进制字符,即把byte的高4位和低4位分别转换成相应的16进制字符H和L,并组合起来得到byte 转换到16进制字符串的结果new String(H) + new String(L).即byte用十六进制表示只占2位. 从上面可以看出

Java字符串转16 进制工具类Hex.java

原文:Java字符串转16 进制工具类Hex.java 源代码下载地址:http://www.zuidaima.com/share/1550463378410496.htm Java 字符串转 16 进制工具类 Hex.java 实现 16进制 0xfecd .. 和 java 字符串之间的互转换! 如果做开发,通常用户登陆密码都会 mad5(salt + pwd) 然后再将 md 之后的数据 hex 一下. 这个工具类,就是实现此效果的. /* * */ package com.zuidaim