从8位二进制转换为十六进制

时间:2016-06-13 16:58:39

标签: java

当我尝试将8位二进制转换为Hexa十进制时 (例如: 00001010 输出 A )但我需要 0A 并且(例如: 10100000 输出为 A )但我需要输出 A0

如何用java编写代码?

3 个答案:

答案 0 :(得分:0)

您可以使用String.format作为下一个:

int value = 0b10100000;
System.out.println(String.format("%02x", value));
value = 0b00001010;
System.out.println(String.format("%02x", value));

<强>输出:

a0
0a

如果您想以大写字母使用%02X代替%02x,那么您将获得:

<强>输出:

A0
0A

响应更新:

您收到异常,因为此格式需要integer,而您提供String,因此在这种情况下需要使用integer作为基数将其转换为2如下:

for(i=0;i<4;i++){
    for(j=0;j<4;j++){
        System.out.println(String.format("%02x", Integer.parseInt(userKey[i][j], 2)));
    }
}

<强>输出:

8a
a2
ca
9a
0a
a2
ca
9a
0a
a2
ca
9a
0a
a2
ca
9a

答案 1 :(得分:0)

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="AjaxFileUpload_Test.WebForm1" %>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
    <div>
        <ajaxToolkit:AjaxFileUpload ID="AjaxFileUpload1" OnUploadCompleteAll="AjaxFileUpload1_UploadCompleteAll" OnUploadStart="AjaxFileUpload1_UploadStart" runat="server" />
    </div>
    </form>
</body>
</html>

答案 2 :(得分:0)

public class Demo
{
static int count=0;
static String res[]=new String[16];
public static void main(String[] args)
{
String str=JOptionPane.showInputDialog("enter text");
String abc="";
char[] messChar = str.toCharArray();
for (int i = 0; i < messChar.length; i++) 
abc+= Integer.toBinaryString(messChar[i]);
System.out.println(abc.length());   
int leg=(int)((abc.length()/128)+1);
String[] spl=new String[leg];   
int j=0,i;
    for( i=0;i<abc.length();i++)
    {
        if(count==128)
        {
            if(i==128)
                spl[j]=abc.substring(0,128);
            else
            spl[j]=abc.substring(i-128,i);
            count=0;
            j++;
        }
        count++;
    }
    spl[j]=abc.substring(i-count,i);
    for(int k=0;k<spl.length;k++)
        System.out.println(spl[k].length());
    for(i=0;i<spl.length;i++)
    {
        String binary=spl[i];
        System.out.println(binary);
    }

}

} 先生,如果我们输入任何文本,它将转换为二进制,然后分成128位。但是最后有一些位小于128位。如何填充这些位得到128位。