`
chenjingbo
  • 浏览: 460023 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

各种进制转换mark贴

 
阅读更多

之前遇到的一些问题..mark一下

 

package zhenghui.jvm.parse;

/**
 * Created by IntelliJ IDEA.
 * User: zhenghui
 * Date: 13-1-14
 * Time: 下午4:43
 * 表示无符号数.类似在jvm specs里规定的u1,u2,u4,u8
 */
public class Type {
    /**
     * 对应的16进制表示值
     */
    private String value;

    Type(String value) {
        this.value = value;
    }

    /**
     * 转换成十进制Integer
     *
     * @return
     */
    public int getDecimalInteger() {
        return Integer.parseInt(value, 16);
    }

    /**
     * 转换成十进制Float
     *
     * @return
     */
    public float getDecimalFloat(){
        return Float.intBitsToFloat(getDecimalInteger());
    }

    /**
     * 转换成十进制Long
     *
     * @return
     */
    public long getDecimalLong(){
        byte readBuffer[] = hexStringToByte(value);
        return (((long)readBuffer[0] << 56) +
                ((long)(readBuffer[1] & 255) << 48) +
                ((long)(readBuffer[2] & 255) << 40) +
                ((long)(readBuffer[3] & 255) << 32) +
                ((long)(readBuffer[4] & 255) << 24) +
                ((readBuffer[5] & 255) << 16) +
                ((readBuffer[6] & 255) <<  8) +
                ((readBuffer[7] & 255) <<  0));

//        return Long.parseLong(value,16);
    }

    /**
     * 转换成十进制Long
     *
     * @return
     */
    public double getDecimalDouble(){
        return Double.longBitsToDouble(getDecimalLong());
    }

    /**
     * 获取对应的16进制表示值
     *
     * @return
     */
    public String getValue() {
        return value;
    }

    private byte[] hexStringToByte(String hex) {
        int len = (hex.length() / 2);
        byte[] result = new byte[len];
        char[] achar = hex.toCharArray();
        for (int i = 0; i < len; i++) {
            int pos = i * 2;
            result[i] = (byte) (toByte(achar[pos]) << 4 | toByte(achar[pos + 1]));
        }
        return result;
    }

    private static byte toByte(char c) {
        byte b = (byte) "0123456789ABCDEF".indexOf(c);
        return b;
    }
}

 

 /**
     * load class 生成对应的16进制的字符串
     *
     * @param filePath
     * @return
     * @throws Exception
     */
    public String loadClass(String filePath) throws Exception {
        File file = new File(filePath);
        if(!file.exists()){
            return null;
        }
        System.out.println("filename:"+file.getName());
        FileInputStream fileInputStream = new FileInputStream(filePath);
        int i;
        StringBuilder sb = new StringBuilder();
        while ((i = fileInputStream.read()) != -1) {
            sb.append(String.format("%02X", i));
        }
        fileInputStream.close();
        return sb.toString();
    }

 

分享到:
评论

相关推荐

    带有进制转换的计算器 java源码.doc

    这个文档描述的是一个Java程序,它实现了一个带有进制转换功能的计算器。这个计算器支持八进制、十进制和十六进制之间的转换。以下是对源码关键部分的详细解释: 1. **异常处理**: 类`This_number_too_big`是...

    Unicode码转换器

    在计算机领域,字符编码是至关重要的,因为它确保了计算机能够正确地识别和显示各种语言的文字。 汉字作为中文的主要表达方式,其在Unicode中的编码称为“汉字Unicode码”,通常以十六进制表示。Unicode码转换器...

    STM32F429串口通信程序中十六进制、字符串,格式发送和接收实现

    1. **字符转换法**:将十六进制数值转换为对应的ASCII码字符,然后逐个发送。例如,数值0x1A可以转换为字符'1'和'A',通过串口发送。这需要自定义函数将整数转换成ASCII字符数组,并使用串口发送函数发送数组中的每...

    pantone2hex:将 Pantone 颜色名称转换为六进制

    将 Pantone 颜色名称转换为十六进制。 用法 $ ./pantone2hex 104C # af9800 依赖关系 pantone2hex使用作为依赖项来解析嵌入在脚本中的 JSON。 您可以从上一个链接git clone它。 学分 感谢提供原始地图,感谢提供令...

    java课程设计0000000

    设计要求不仅包含基础的四则运算,还增加了进制转换功能,可在八进制、十进制和十六进制之间互相转换。对于八进制,允许输入最大19位数,十进制允许输入最大18位数,而十六进制则允许输入最大14位数。 在设计思想...

    超级批量编码转换工具

    此外,如果源文件中含有BOM(Byte Order Mark),在转换时可以根据需求选择是否保留。 总的来说,《超级批量编码转换工具》为处理大量文件编码转换提供了便捷的解决方案,节省了人工操作的时间和精力。对于经常处理...

    ReadMark-master源码

    sdat2img工具能够将这些二进制数据转换为可读的图像文件,便于开发者进行分析和调试。源码中可能涵盖了二进制数据的解析、文件格式转换以及图像生成的技术。通过对源码的研究,开发者可以学习到Android系统文件结构...

    Txt To unicode转换器

    Unicode转换器是一款针对文本文件的专业工具,主要用于将普通的ASCII编码的TXT文本文件转换为Unicode编码格式,以便在各种设备上,特别是智能手机上,能够正确显示和阅读这些文本内容。Unicode是一种广泛使用的字符...

    HDB3.rar_HDB3解码_hdb3 vb_hdb3码在线转换_消息转换ami

    在这个名为“HDB3.rar”的压缩包中,包含了利用VB实现的HDB3码与AMI(Alternate Mark Inversion)码之间的转换算法。 HDB3码,全称High Density Bipolar with 3-level Transition,是一种非归零交替极性码,其特点...

    asp实现二进制字符串转换为Unicode字符串

    在ASP(Active Server Pages)中,我们经常需要处理各种数据格式,其中就包括二进制字符串和Unicode字符串的转换。二进制字符串是由0和1组成的,通常用于存储非文本数据,如图片或文件的原始内容。Unicode字符串则是用...

    易语言源码unicode转换UTF8.rar

    易语言是一种在中国广泛...总结来说,这个压缩包提供了一个学习和实践字符编码转换的实例,对于易语言开发者来说,这是一个很好的学习资源,有助于理解和处理各种编码问题,尤其是在处理多语言或者跨平台的文本数据时。

    Unicode编码转换源码

    在计算机科学领域,字符编码是将字符转换为二进制表示的过程,以便计算机可以处理和存储文本。Unicode编码是一种国际标准,旨在解决不同语言和字符集之间的兼容性问题。Unicode编码转换源码主要关注如何在不同的编码...

    utf8.rar_UTF8_utf8二进制编码_utf8等格式_编码格式

    UTF8编码是Unicode的一种实现方式,它是一种广泛用于网络传输和数据存储的字符编码标准。在计算机科学领域,字符...同时,了解如何从二进制数据转换为UTF8字符,可以帮助我们更好地处理和理解包含非ASCII字符的数据。

    java计算器

    尽管提供的内容没有详细描述进制转换的实现,但可以推测程序包含了将不同进制(八进制、十进制、十六进制)的数字转换为十进制,以及将十进制转换回这些进制的功能。这通常通过解析和格式化数字字符串来实现。 6. ...

    将中文转换成unicode格式

    这种转换方法在处理涉及中文字符编码的各种应用场景中都十分实用,例如网页开发、数据库编码以及跨平台数据交换等。掌握这一技能,对于任何需要进行文本处理的专业人士来说,都是一项必须具备的基础能力。

    一种基于Python实现中文编码格式转换工具的源码

    本文将深入探讨一种基于Python实现的中文编码格式转换工具,它能够帮助运维人员和开发者轻松地处理各种编码格式,并将其解析为16进制输出。 首先,我们需要了解编码的基本概念。编码是用来表示字符的规则,例如...

    易语言模块将任何编码转换到GB2312

    转换算法则根据不同的编码规则,如UTF-8、GBK等,将每个字符转换成对应的GB2312二进制表示。错误处理主要针对那些在目标编码格式中不存在的字符,通常采用替换或忽略策略。 易语言模块实现这一功能可能会包含以下几...

    Unicode码轻松转换

    4. **编程语言实现**:在编程中,可以使用各种语言(如Java、Python、C++等)的库函数来实现Unicode转换。例如,Python中的`codecs`模块,Java的`java.nio.charset`包,JavaScript的`TextDecoder`和`TextEncoder`...

    合肥单位考试计算机真题整理.pdf

    此外,能够将十进制数转换为二进制,例如52转换为110100,以及二进制转换为八进制,如110101转换为56(8进制)。 计算机硬件系统中,硬盘驱动器和软盘驱动器既是输入设备也是输出设备;扫描仪和录音机是输入设备,...

    UTF8.rar_UTF8_字符编码转换

    2. 编码方案:如UTF-8、UTF-16等,是用来将Unicode码位转换成二进制表示的方法。UTF-8是最常见的,因为它对ASCII字符的兼容性好且字节序列可变长。 3. ASCII:早期的7位字符编码,只包含英文和其他一些符号,它是...

Global site tag (gtag.js) - Google Analytics