美文网首页
六号线晚报0524

六号线晚报0524

作者: z0nk1n | 来源:发表于2018-05-24 23:21 被阅读0次

天气:晴 风力:无风

java十六进制转各种形式

public class Decoder {
    public static void main(String[] args) {


        //十进制形式
        int anInt1 = 123_45_6;
        //二进制、十六进制等形式也支持
        int anInt2 = 0b10_0110_100;
        int anInt3 = 0xFF_EC_DE_5E;
        //小数形式也支持
        float pi = 3.14_15F;
        double aDouble = 3.14_15;
        //多个下划线相连
        int chain = 5______2____0;

        int i = 0xFFFFFFFF;

        System.out.println(i); //-1

        //        byte b = 0xFF;   错误byte-128~127
        byte b = (byte) 0xFF;
        System.out.println(b);  //-1

        Double d = 2.1353;
        byte b1 = d.byteValue();
        System.out.println(b1);  //2

        byte[] bytes = {0x61, 0x62};

        String s1 = new String(bytes);
        System.out.println(s1);  //ab


        String unicodeStr = "\\u73\\u74\\u72\\u69\\u6e\\u67\\u4e2d\\u6587\\u6c49\\u5b57";
        System.out.println(unicode2String(unicodeStr));

        String str = "string中文汉字";
        System.out.println(string2Unicode(str));

        //unicode字符串和字符串转化实际是char和int的转化
        int ui = 0x4e2d;
        System.out.println((char) ui);  //中
        char ci = '中';
        System.out.println(Integer.toHexString(ci)); //4e2d


        //小数和16进制字符串转化
        float f = 666663.123477777f; //必须加f,要不会认为d
        System.out.println(Integer.toHexString(Float.floatToIntBits(f))); //4922c272
        String hexF = "4922c272";
        System.out.println(Integer.parseInt(hexF, 16)); //1227014770
        System.out.println(Float.intBitsToFloat(Integer.parseInt(hexF, 16)));//666663.1 在转int时丢失精度尽量保留高位

        double d1 = 3.123488888d; //是否加d没有影响结果
        System.out.println(Long.toHexString(Double.doubleToLongBits(d1))); //4008fce7bdfb0906
        String hexD = "4008fce7bdfb0906";
        System.out.println(Double.longBitsToDouble(Long.parseLong(hexD, 16)));


        System.out.println(Integer.MAX_VALUE);

    }

    public static String unicode2String(String unicodeStr) {
        StringBuffer sb = new StringBuffer();
        String[] hexStr = unicodeStr.split("\\\\u");
        for (int i = 1; i < hexStr.length; i++) {  //第一个是空格
            int data = Integer.parseInt(hexStr[i], 16); //unicode英文数字1个字节中文2个字节,int四个字节可以容纳
            System.out.println(data);
            sb.append((char) data);  //java char两个字节,中英文都可容纳

        }
        return sb.toString();
    }

    public static String string2Unicode(String str) {
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < str.length(); i++) {
            char ch = str.charAt(i);
            System.out.println(ch);
            sb.append("\\u" + Integer.toHexString(ch));
        }
        return sb.toString();
    }
}

相关文章

  • 六号线晚报0524

    天气:晴 风力:无风 java十六进制转各种形式

  • 六号线晚报

    终于我也坐了六号线

  • 六号线晚报0606

    天气:晴 风力:微风 会计政策、会计估计及其变更 1.会计政策 会计政策,是指企业在跨级确认、计量和报告中所采用的...

  • 六号线晚报0528

    天气:晴 风力:微风 为什么要 & 0xFF byte类型的数字要&0xff再赋值给int类型,其本质原因就是想保...

  • 六号线晚报0529

    天气:阴转晴 风力:微风 byte组合byte[] System.arraycopy() Arrays.copyO...

  • 六号线晚报0604

    天气:晴 风力:无风 tools.jar ---> javac 第一次遇到有项目里用到了tools.jar包,稍微...

  • 六号线晚报0527

    天气:阴 风力:微风 Java时间处理Java8 time包 未完待续

  • 六号线晚报0522

    天气:多云 风力:微风 回调 把实现回调接口的类对象传递到方法里面再利用此对象执行操作异步,即在在方法里启动另一...

  • 六号线晚报0523

    天气:晴 风力:微风 callable 1.callable是一个可以带返回值的多线程接口,类似runnable,...

  • 六号线晚报0531

    天气:阴 风力:微风 OSGi quickstart 插曲 打debug包的时候,执行mvn: resolver:...

网友评论

      本文标题:六号线晚报0524

      本文链接:https://www.haomeiwen.com/subject/hmesjftx.html