java new short_Java的byte,short, int, long等转换方法

public static byte[] shortToBytes(short n) {

byte[] b = new byte[2];

b[1] = (byte) (n & 0xff);

b[0] = (byte) ((n >> 8) & 0xff);

return b;

}

public static short bytesToShort(byte[] b) {

return (short) (b[1] & 0xff

| (b[0] & 0xff) << 8);

}

/**

* int类型转换成byte[]

*

* @param num

* int数

* @return byte[]

*/

public static byte[] intToBytes(int num) {

byte[] b = new byte[4];

for (int i = 0; i < 4; i++) {

b[i] = (byte) (num >>> (24 - i * 8));

}

return b;

}

public static int bytes2int(byte[] b) {

//byte[] b=new byte[]{1,2,3,4};

int mask = 0xff;

int temp = 0;

int res = 0;

for (int i = 0; i < 4; i++) {

res <<= 8;

temp = b[i] & mask;

res |= temp;

}

return res;

}

public static byte[] longToBytes(long num) {

byte[] b = new byte[8];

for (int i = 0; i < 8; i++) {

b[i] = (byte) (num >>> (56 - i * 8));

}

return b;

}

public static String str2HexStr(String str) {

char[] chars = "0123456789ABCDEF".toCharArray();

StringBuilder sb = new StringBuilder("");

byte[] bs = str.getBytes();

int bit;

for (int i = 0; i < bs.length; i++) {

bit = (bs[i] & 0x0f0) >> 4;

sb.append(chars[bit]);

bit = bs[i] & 0x0f;

sb.append(chars[bit]);

}

return sb.toString();

}

public static String bytesToHexString(byte[] bArray) {

StringBuffer sb = new StringBuffer(bArray.length);

String sTemp;

for (int i = 0; i < bArray.length; i++) {

sTemp = Integer.toHexString(0xFF & bArray[i]);

if (sTemp.length() < 2) {

sb.append(0);

}

sb.append(sTemp.toUpperCase());

}

return sb.toString();

}

public static byte[] hexStringToBytes(String hexString) {

String chars = "0123456789ABCDEF";

if (hexString == null || hexString.equals("")) {

return null;

}

hexString = hexString.toUpperCase();

int length = hexString.length() / 2;

char[] hexChars = hexString.toCharArray();

byte[] d = new byte[length];

for (int i = 0; i < length; i++) {

int pos = i * 2;

d[i] = (byte) (chars.indexOf(hexChars[pos]) << 4 | chars.indexOf(hexChars[pos + 1]));

}

return d;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值