byte数据类型的初步入门

byte数据类型的初步入门

对于byte这个数据类型,因为应用的少,所以需要深入运用才能实践,1 byte = 8位二进制(实践证明:byte variable = 01100110,这样你就彻底错了,真正写byte类型的代码你就搞不定了),因为,二进制11111111对应的十进制是255,平常我们写代码时用的byte数据类型,就是存储的十进制的数,所以byte 变量 = 1到255之间的任何数是正确的,因为ASCII字符对应的十进制就是1到255,所以写代码的时候可以byte 变量 = 任何一个ASCII字符:

Byte variable = (byte)168 printf(variable) 你猜输出什么?

输出169 ,variable = 168ASCII码是人为对一些字符所编的号(从1到255),默认是十进制表示的,这个重要的认识说三遍,不然写代码的时候,会因这些弱智问题,让你烦写代码的。Int是32位,byte是8位,读别人的代码会经常看到:

int variable = XXX;

variable &0xff 是什么?

0xff是16进制的0xff,十进制的255,二进制的1111 1111

所以variable&0xff 是 :

variable:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

0xff : _ _ _ _ _ _ _ _

所以这个运算就是把变量variable的前3个高位清0,保留最后一个字节,而最后一个字节就是8位刚刚好可以把ASCII存储,所以就可以用该运算判断变量variable是不是ASCII,如果运算结果是0,说明该变量高位有值,就不是ASCII了,不是0就是ASCII了

我之前很想体会一下自己使用byte这个数据类型的体验,但是总体会不到,因为我觉得168这个数用byte,应该是0011100这样的一个数把,可惜不是,因为byte默认就是十进制,而且byte十进制存储还是1到255,所以说操作十进制1到255的时候,你想体会byte数据类型结果跟体会int一样去了,int就不说了,所以很失望,但是没事,你用byte存储256就看到效果了:

其实我们平时写代码有关byte数据类型的时候,最用到的还是byte数据类型和int,string,char之间的转换,因为在串口传输数据的时候就会遇到了:

Int型32位byte型8位

例如:int 类型:97

则二进制表示为:00000000 00000000 00000000 01100001

代码实现: