无论在面试过程中还是平时的技术交流中,似乎有很多小伙伴始终记不住java中byte类型的取值范围是多少。究其原因大部分程序员对这个取值范围是不在意的,因为知道与不知道都不影响你完成工作。另外这种知识点压根不是让你死记硬背的,当然如果你是从其他文科专业转过来学编程开发的,还情有可原。但对一个理科生来说,就不太应该了。,在java中,byte占1个字节,8比特位,可以想象成8个小块的数据区间,首位用0、1代表符号位。**0[正]、1[负]**,那么绘制出一个表格如下;,byte 序号 8 7 6 5 4 3 2 1 2ⁿ 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 值 128 64 32 16 8 4 2 1 +127 0 1 1 1 1 1 1 1 -128 1 0 0 0 0 0 0 0,+127 二进制求和,-128 二进制求和,好了,现在看懂逻辑就很清晰了,为什么是负数到-128,因为1代表负数的符号位,也就整整好好是2的8次方,-128。,因为java语言与一些其他语言byte的取值范围不同,所以在有时候处理一些文件时候需要进行进制转换。也就是 -128~127 与 0~255 的转换处理;,比如我们现在将一个java中byte=120,转换成 0~255取值范围的数值;,一般可以进行与运算;,同时还可以进行增位运算;(也就是将8个字节长度的内容,放到16个长度中,进行转换),java的类文件都会被编译成class文件,那么class文件需要经过jvm的解析、验证,加载等处理才可以被虚拟机的指令执行操作。,如果下是一段class文件的byte数组,将内容解析出对应的结果;,测试结果:
文章版权声明
1 原创文章作者:cmcc,如若转载,请注明出处: https://www.52hwl.com/17370.html
2 温馨提示:软件侵权请联系469472785#qq.com(三天内删除相关链接)资源失效请留言反馈
3 下载提示:如遇蓝奏云无法访问,请修改lanzous(把s修改成x)
4 免责声明:本站为个人博客,所有软件信息均来自网络 修改版软件,加群广告提示为修改者自留,非本站信息,注意鉴别