16进制、10进制、2进制、byte、bit换算

1、16进制转10进制
08a5=81616+10*16+5=2213
编码实现:

      int decimal = Integer.parseInt("08a5", 16); 
      System.out.println(decimal); // 输出转换后的10进制数
      String hex = Integer.toHexString(decimal);
      while (hex.length() < 4) {
          hex = "0" + hex;
      }
      System.out.println(hex);

2、10进制转2进制
10进制通过除2取余法,得到二进制:1000 1010 0101

余数
2213/2=11061
1106 /2=5530
553/2=2761
276/2=1380
138/2=690
69/2=341
34/2=170
17/2=81
8/2=40
4/2=20
2/2=10
1/2=01

验证一下二进制是否正确
在这里插入图片描述
1+4+32+128+2048=2213 正确
编码实现:

   // 十进制转二进制
   String binary = Integer.toString(156, 2); 
   System.out.println(binary); 
   // 二进制转十进制
   int decimal = Integer.parseInt(binary, 2); 
   System.out.println(decimal); 

3、byte
‌byte的范围是-128到127。‌ byte是一个8位的二进制数,最高位是符号位,表示正负号。因此,byte的最大值为01111111(二进制),即127(十进制)。最小值为10000000(二进制),即-128(十进制)。

UTF-8字符串byte互相转化

 byte[] bytes = "您好".getBytes();
 String str=new String(bytes,"UTF-8")

十六进制byte互相转化

byte[] dataBytes =  DatatypeConverter.parseHexBinary(data);
Strng hex=DatatypeConverter.printHexBinary(dataBytes)

十进制byte互相转化

  byte[] array = ByteBuffer.allocate(4).putInt(10).array();
        ByteBuffer buffer = ByteBuffer.allocate(4);
        buffer.put(array).flip();
        int b = buffer.getInt();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值