二进制最高位1就是负数,0就是正数
话不多说直接上代码
有符号 -59=BB (二进制:10111011) 59=3B (二进制:00111011)
package cc.dfsoft.usmart.core.domain.field;
import cc.dfsoft.usmart.core.utils.ByteUtil;
import java.math.BigDecimal;
public class text {
// 有符号
//二进制最高位1就是负数,0就是正数
// 有符号 -59=BB (二进制:10111011) 59=3B (二进制:00111011)
public static void main(String[] args) {
String res = "";
String value = "-999999999";
if (value.indexOf("-") == 0) {//负数
value = value.substring(1, value.length());
long temp = new BigDecimal(value).longValue();
String aa = bytesToBinary(longToL4HByte(temp));
res = "1" + aa.substring(1);
res = binaryString2hexString(res).toUpperCase();
} else {//正数
long temp =