将书籍的ISBN号转换为HexaDecimal以便写入RFID标签

时间:2014-12-22 07:52:50

标签: java rfid hex isbn

我正在为超高频RFID卡写入ISBN值,因此我需要扫描书籍的条形码并接收ISBN,然后我需要将(13位整数)的ISBN转换为十六进制值写入UHF RFID标签。

截至目前,我可以扫描条形码并接收ISBN号,但我需要一些帮助才能将ISBN转换为十六进制值,以便用Java写入UHF RFID标签。

2 个答案:

答案 0 :(得分:0)

   BigInteger toHex=new BigInteger(dec,10);// use this to convert your number to big integer so that any number can be stored where dec is your input number in base 10 in string
     String s=toHex.toString(16);//convert your number into hexa string which can be directly stored in rfid tag

答案 1 :(得分:-1)

您可以使用Long.valueOf(isbnString, 16)。创建一个方法toHex,如果输入字符串包含"-",则用空字符串替换它们,然后创建并返回该数字。请注意,Long.valueOf可以抛出NumberFormatException例如

public static Long toHex(String isbn) {
    String temp = isbn;
    if (isbn.length() > 10) {
        temp = isbn.replaceAll("-", "");
    }

    return Long.valueOf(temp, 16);
}

public static void main(String[] args) {
        Long isbn1 = 9780071809L;
        Long isbn2 = 9780071809252L;

        System.out.println(toHex(isbn1.toString()));
        System.out.println(toHex(isbn2.toString()));
        System.out.println(toHex("978-0071809252"));
    }