我正在为超高频RFID卡写入ISBN值,因此我需要扫描书籍的条形码并接收ISBN,然后我需要将(13位整数)的ISBN转换为十六进制值写入UHF RFID标签。
截至目前,我可以扫描条形码并接收ISBN号,但我需要一些帮助才能将ISBN转换为十六进制值,以便用Java写入UHF RFID标签。
答案 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"));
}