关于向打印机传送命令的问题

CocoPig 2009-11-29 02:34:01
我在向打印机传送一个数据,本意是一个控制命令,可是它直接给打印出来了
byte[] command1 = Integer.toHexString(27).getBytes();
我想传的是这个16进制"1B"转换成的二进制码"11011"这样子,可是打印机直接打印出"1B"出来了,我该怎么写呢,大家能否给个参考意见
...全文
143 3 打赏 收藏 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
CocoPig 2009-11-29
  • 打赏
  • 举报
回复
以为是有两个人回帖呢,呵呵
CocoPig 2009-11-29
  • 打赏
  • 举报
回复
哈哈,已经成功解决。应该是这样子才对byte[] a={0x1b};
非常感谢大家
一头头 2009-11-29
  • 打赏
  • 举报
回复
先16进制变成String 再变成二进制String


//16进制byte 转String
public static String getHexString(byte[] data) {

StringBuilder sb = new StringBuilder();
int len = data.length;

for (int i = 0; i < len; i++) {
int output = (data[i] + 256) % 256;
sb.append(" ");
String temp = Integer.toHexString(output);
if (temp.length() < 2)
temp = "0" + temp;
sb.append(temp);

}
return sb.toString();
}



//16进制String 转2进制String字符串
public static String binaryString2hexString(String bString) {
if (bString == null || bString.equals("") || bString.length() % 8 != 0)
return null;
StringBuffer tmp=new StringBuffer();
int iTmp = 0;
for (int i = 0; i < bString.length(); i += 4) {
iTmp = 0;
for (int j = 0; j < 4; j++) {
iTmp += Integer.parseInt(bString.substring(i + j, i + j + 1)) << (4 - j - 1);
}
tmp.append(Integer.toHexString(iTmp));
}
return tmp.toString();
}



62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧