关于byte字节类型数据的思考

1.java有8个基础数据类型,分别是byte,short,int,float,double,long,char,boolean;今天主要讨论byte数据类型。byte数据类型表示字节数值数据。内存中占一个字节,即8位。byte数据类型范围很小,最小-128,最大127.范围就是-128至127.java很有意思的地方就是如果小于-128或大于127的数字转换为byte类型数据时要强类型转换,而且结果还是127和-128.

2.我们经常会用byte数组去读写。例如字符串编码,文件的下载中也会用字节数组(实质上byte[]数组可做缓冲的作用),在网络通信是不管是TCP还是UDP,MulticastSocekt广播数据打包的时候都使用byte[]数组。关于通过二进制字节流过渡的转换基本上离不开byte数组。byte数组的元素无非就是-128至127的数值。我现在想问的就是为什么使用byte数组去描述二进制字节流?我很欣赏java用这么简单的方式去处理如此复杂的工作。但是我心中始终有一个疑问:byte数组为什么描述二进制流,难道就是因为它内存中占一个字节的缘故?

总结:内存最小单元就是字节,Intel的x86芯片内存地址是按字节编的,那指针可以指向的最小内存单元就是一个字节,而其他的一些CPU按字编地址,CPU没有操作存储器中单一字节的指令,那指针可以指向的最小内存单元就是一个字,对于16位的机器就是两个字节,32位的机器就是四个字节.

二进制,位,字节的概念:

二进制是计算机中表示数的办法,也是实现运算的唯一途径。
位能表示一个二进制数,0,或者是1,可以用来代表低电平,高电平。或者无,有

字节是8位二进制数,从00000000到11111111,相当于十进制数的0-255.可以用来表示一个不大于255的无符号数或者-128到127的有符号数,或者一个符号。

关于byte[]数组表示二进制字节流其实本质因该是用一个字节的方式读取二进制流,读完一个字节读取下一个字节。如果一次读取两个字节,可能会出问题或者假如二进制流是99个字节,读取最后一个字节的时候读不到2个字节,所以可能想办法克服一次读不到2个字节的问题。但是用字节数组表示的话,就不会出这样的问题,因为字节是最小的存储单元,不会出现读不到的问题。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值