Android与单片机---开发板---智能硬件---智能设备---数据协议--开发总结,2024吊打面试官系列

}

//4 end
public abstract void write(int b) throws IOException;

小结:无论定义的通讯格式是什么样的最终肯定要转成byte[](字节数组)进行发送,所以只要将数据转成字节数组即可,下面进入数据类型科普时间

三、Java中的数据类型所占的字节数和bit数

数据类型 所占字节数 所占bit数 取值范围
byte 1 8 -128 ~ 127
char 2 16 ‘\u0000’ ~ ‘\uFFFF’
short 2 16 -2^15 ~ 2^15 - 1
int 4 32 -2^31 ~ 2^31 - 1
float 4 32 2^-149 ~ 2^128 -1
long 8 64 -2^63 ~ 2^63 - 1
double 8 64 2^-1074 ~ 2^1024 - 1
boolean / 1 true or false
  • String在Java中不属于基本数据类型,一个汉字占2个字节,一个英文字母占1个字节
  • 小结:1 byte = 8 bit
3.1 什么是bit呢?什么又是高低位呢?在Java中又怎么写代码呢?
  • bit就是 也就是二进制数据,取值只有 0,1 - 高位在左,低位在右
  • 这里以byte 123为例:
  • byte b =123 转为bit
  • 高位在0,低位在1 0111 1011
  • 在Java中获取byte的8个bit

/**

  • byte转8 bit

  • @param b byte

  • @return 高位到低位顺序, 以byte123 为例: 0111 1011
    */
    public static byte[] byte2Bit(byte b) {
    byte[] arr = new byte[8];
    for (int i = 7; i >= 0; i–) {
    arr[i] = (byte) (b & 1);
    b = (byte) (b >> 1);
    }
    return arr;
    }

  • 既然把byte转为了8个bit位,那我们又怎么再把bit转回为byte呢?

/**

  • 8个bit位转为byte
    */
    public static byte bit2Byte(byte[] bytes) {
  • 22
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值