`

java中进制之间的转换和一些位操作

    博客分类:
  • J2SE
阅读更多
会继续更新,先放一部分上来...

1.java字符串与二进制的相互转化
public class StrBinaryTurn {
    //将Unicode字符串转换成bool型数组
    public boolean[] StrToBool(String input){
        boolean[] output=Binstr16ToBool(BinstrToBinstr16(StrToBinstr(input)));
        return output;
    }
    //将bool型数组转换成Unicode字符串
    public String BoolToStr(boolean[] input){
        String output=BinstrToStr(Binstr16ToBinstr(BoolToBinstr16(input)));
        return output;
    }
    //将字符串转换成二进制字符串,以空格相隔
    private String StrToBinstr(String str) {
        char[] strChar=str.toCharArray();
        String result="";
        for(int i=0;i<strChar.length;i++){
            result +=Integer.toBinaryString(strChar[i])+ " ";
        }
        return result;
    }
    //将二进制字符串转换成Unicode字符串
    private String BinstrToStr(String binStr) {
        String[] tempStr=StrToStrArray(binStr);
        char[] tempChar=new char[tempStr.length];
        for(int i=0;i<tempStr.length;i++) {
            tempChar[i]=BinstrToChar(tempStr[i]);
        }
        return String.valueOf(tempChar);
    }
    //将二进制字符串格式化成全16位带空格的Binstr
    private String BinstrToBinstr16(String input){
        StringBuffer output=new StringBuffer();
        String[] tempStr=StrToStrArray(input);
        for(int i=0;i<tempStr.length;i++){
            for(int j=16-tempStr[i].length();j>0;j--)
                output.append('0');
            output.append(tempStr[i]+" ");
        }
        return output.toString();
    }
    //将全16位带空格的Binstr转化成去0前缀的带空格Binstr
    private String Binstr16ToBinstr(String input){
        StringBuffer output=new StringBuffer();
        String[] tempStr=StrToStrArray(input);
        for(int i=0;i<tempStr.length;i++){
            for(int j=0;j<16;j++){
                if(tempStr[i].charAt(j)=='1'){
                    output.append(tempStr[i].substring(j)+" ");
                    break;
                }
                if(j==15&&tempStr[i].charAt(j)=='0')
                    output.append("0"+" ");
            }
        }
        return output.toString();
    }  
    //二进制字串转化为boolean型数组  输入16位有空格的Binstr
    private boolean[] Binstr16ToBool(String input){
        String[] tempStr=StrToStrArray(input);
        boolean[] output=new boolean[tempStr.length*16];
        for(int i=0,j=0;i<input.length();i++,j++)
            if(input.charAt(i)=='1')
                output[j]=true;
            else if(input.charAt(i)=='0')
                output[j]=false;
            else
                j--;
        return output;
    }
    //boolean型数组转化为二进制字串  返回带0前缀16位有空格的Binstr
    private String BoolToBinstr16(boolean[] input){
        StringBuffer output=new StringBuffer();
        for(int i=0;i<input.length;i++){
            if(input[i])
                output.append('1');
            else
                output.append('0');
            if((i+1)%16==0)
                output.append(' ');          
        }
        output.append(' ');
        return output.toString();
    }
    //将二进制字符串转换为char
    private char BinstrToChar(String binStr){
        int[] temp=BinstrToIntArray(binStr);
        int sum=0;  
        for(int i=0; i<temp.length;i++){
            sum +=temp[temp.length-1-i]<<i;
        }  
        return (char)sum;
    }
    //将初始二进制字符串转换成字符串数组,以空格相隔
    private String[] StrToStrArray(String str) {
        return str.split(" ");
    }
    //将二进制字符串转换成int数组
    private int[] BinstrToIntArray(String binStr) {      
        char[] temp=binStr.toCharArray();
        int[] result=new int[temp.length];  
        for(int i=0;i<temp.length;i++) {
            result[i]=temp[i]-48;
        }
        return result;
    }
  

  
}
分享到:
评论

相关推荐

    java实现各进制之间转换

    在编程领域,尤其是在Java语言中,进行不同进制之间的转换是一项基本操作。进制转换是计算机科学中的基础知识,因为计算机内部使用的是二进制(Binary)系统,而我们日常使用的是十进制(Decimal)系统。为了理解并...

    java 各种进制的转换

    此外,文件名中的 `TextZhuanhuan.java` 暗示可能有一个类或方法实现了进制转换的功能,而 `Java.jpg` 则可能是用来辅助理解进制转换概念的图像。 总结来说,Java提供了丰富的内置函数来支持各种进制间的转换,无论...

    java 将文件中二进制文件转换成文本文本文件并输出

    在Java编程语言中,将二进制文件转换为文本文档通常涉及到字符编码的理解和处理。二进制文件可以包含任何类型的数据,如图像、音频、视频或纯文本,但以非可读格式存储。而文本文档通常使用特定的字符编码(如ASCII...

    java 进制转换,二进制 十进制 十六进制 正数 负数的进制等等!.docx

    Java并没有直接提供将十进制小数转换为其他进制的内置方法,但可以通过一些数学运算和位操作实现。例如,将十进制小数转换为二进制通常需要乘以2并取整,然后不断重复这个过程直到小数部分为0。 总之,理解并熟练...

    Java编写的进制转换程序

    在Java中,进制转换主要涉及到`Integer`和`String`类中的方法。以下是主要涉及的知识点: 1. **字符串到整数的转换**:在Java中,我们可以使用`Integer.parseInt()`或`Integer.valueOf()`方法将表示特定进制的字符...

    进制转换C源码

    首先,进制转换是计算机科学中的基本概念,主要包括二进制、八进制、十进制和十六进制之间的转换。C语言中,我们可以利用内置的函数如`printf`和`scanf`进行简单的进制转换,但更复杂的转换通常需要自定义函数来完成...

    JAVA二进制字节数组字符十六进制BCD编码转换.doc

    以下将详细介绍这些概念以及如何在Java中进行相关操作。 1. **二进制与十六进制转换** - 二进制是一种基于2的计数系统,只包含两个数字:0和1。 - 十六进制是一种基于16的计数系统,由0-9的阿拉伯数字和A-F的字母...

    用java程序实现各进制转换

    在Java中,我们可以使用多种方法来实现进制转换,例如使用位操作符、数学运算符等。但是使用Integer类提供的方法是最简单和最直接的方式。 在实际应用中,进制转换有着广泛的应用,例如在数据存储、网络传输和加密...

    java权限设置,和java处理字符和二进制的转换

    Java权限设置和字符、二进制转换 Java权限设置是一种常用的权限控制方法,用于控制用户对系统资源的访问权限。在Java中,我们可以使用位运算来实现权限控制。下面是Java权限设置的知识点: 1. 权限控制算法:我们...

    ASCII及进制转换4.0版 ascii码与16进制之间转换 及16 10 8 2进制之间的转换

    二进制转换是计算机科学中最基础的操作之一,对于理解计算机如何存储和处理信息至关重要。 "ASCII及进制转换4.0版"这个软件显然提供了一个方便的工具,帮助用户在ASCII码、16进制、10进制、8进制和2进制之间进行...

    java二进制运算器(加、见、乘、除)

    7. **二进制转换**: 在Java中,我们可以使用Integer.toBinaryString()方法将十进制数转换为二进制字符串,而Integer.parseInt()或Integer.valueOf()可以将二进制字符串转换回十进制数。 8. **实现二进制运算器**: ...

    java_十进制数转换为二进制,八进制,十六进制数的算法

    `chang`函数则专门用于处理十六进制转换中余数为10到15的情况。 ### 示例代码 虽然提供的代码片段包含了一些非Java语法(如C#特有的命名空间和类定义),但核心转换逻辑清晰可见。例如,在`DtoB`函数中,通过循环...

    Java程序十进制转二进制,八进制,十六进制

    在Java编程语言中,将十进制...总的来说,理解并熟练掌握这些进制转换在Java编程中至关重要,特别是在处理位运算、数据存储和网络通信等场景。通过Transform.java这样的简单程序,开发者可以更好地理解和实践这些概念。

    大数16进制向10进制转换

    总之,大数16进制到10进制的转换是计算机科学中的基本操作,涉及到数字表示、进制转换和大数运算等多个概念。理解和掌握这些知识点对于编写高效、可靠的代码至关重要。在实际应用中,我们需要根据具体情况选择合适的...

    汉字十六进制和二进制转换

    ### 汉字十六进制和二进制转换 #### 背景介绍 在计算机科学领域,数据的表示和转换是一项基本而重要的任务。不同的数据格式之间进行转换是实现数据处理、存储和传输的基础。其中,二进制(Base-2)与十六进制(Base...

    java 实现十六进制数转为图片

    在Java编程语言中,将十六进制数转换为图片是一项有趣且实用的技术,它涉及到颜色编码、位操作以及图像处理。下面将详细讲解这个过程,包括核心知识点和具体实现步骤。 首先,我们要理解十六进制数与像素颜色的关系...

    16进制数据转换

    - 网络通信:在网络数据传输过程中,为了保证数据的完整性和安全性,经常需要对数据进行编码和解码,十六进制转换就是其中一种常见的编码方式。 掌握十六进制与字符串转换的技巧,对于任何从事软件开发,尤其是涉及...

    二进制、十进制、十六进制相互转换的Java程序

    3. **Java中的进制转换**: - 使用`Integer.parseInt()`和`Integer.toString()`方法进行转换。例如,`Integer.parseInt("1010", 2)`将二进制字符串"1010"转换为十进制整数,`Integer.toString(10, 2)`将十进制数10...

    Java把十进制转成二进制(任意进制)的程序

    总的来说,Java中的进制转换是通过内置方法和自定义算法相结合的方式来完成的。在处理这些转换时,理解数字系统的基本原理至关重要,同时也需要掌握Java中的字符串操作和数学运算。希望这个解释能帮助你理解和实现...

    java16进制与字符串的转换借鉴.pdf

    在Java编程语言中,16进制(Hexadecimal)与字符串之间的转换是常见的操作,尤其在处理二进制数据、编码解码或者日志记录时。以下是一些关键知识点: 1. **16进制字符串转字节数组**: - `HexString2Bytes`方法...

Global site tag (gtag.js) - Google Analytics