方法一(无bug朋友写的):
public static String add(String address, int addend) { String hex = address.replaceAll("\\:", ""); String prefix = address.substring(0, 9); long start = Long.parseLong(hex, 16); start -= addend; hex = Long.toHexString(start); String suffix = hex.substring(hex.length() - 6); StringBuffer sb = new StringBuffer(suffix); sb.insert(2, ":"); sb.insert(5, ":"); return prefix + sb.toString(); }
方法二:
public String router(String mac){ String start = mac.substring(0, mac.length()-2); String[] e = mac.split(":"); String end = e[e.length-1]; //十六进制转化为十进制 int zs = Integer.parseInt(end,16); int cz = zs-1; //十进制转化为十六进制 String m = Integer.toHexString(cz); if(m.length()<2){ String s = "0" + m; m = s; } if(end.equals("00")){ m = "ff"; } String msg= start+m; return msg; }
