java 0xff是什么意思_Java中为何与0xff进行与运算
代码解析:
注意这里b[ i ] & 0xFF将一个byte和 0xFF进行了与运算。
b[ i ] & 0xFF运算后得出的仍然是个int,那么为何要和 0xFF进行与运算呢?直接 Integer.toHexString(b[ i ]);
将byte强转为int不行吗?答案是不行的.
其原因在于:
1.byte的大小为8bits而int的大小为32bits
2.java的二进制采用的是补码形式
byte是一个字节保存的,有8个位,即8个0、1。
8位的第一个位是符号位,
也就是说0000 0001代表的是数字1
1000 0000代表的就是-1
所以正数最大位0111 1111,也就是数字127
负数最大为1111 1111,也就是数字-128
上面说的是二进制原码,但是在java中采用的是补码的形式,
java中的數值是int,所以0xFF是int,而byte是有符號數,int亦然,直接由byte升為int,符號自動擴展,
而進行了& 0xFF後,就把符號問題忽略掉了,將byte以純0/1地引用其內容,所以要0xFF,不是多餘的,
你用一些Stream讀取文件的byte就知道了,我昨天搞了一天,就不明白為什麼讀出來的數某些byte會
在移位後錯誤的,就是因為這個原因.
把number转换为二进制,只取最低的8位(bit)。因为0xff二进制就是1111 1111
& 运算是,如果对应的两个bit都是1,则那个bit结果为1,否则为0.
比如 1010 & 1101 = 1000 (二进制)
由于0xff最低的8位是1,因此number中低8位中的&之后,如果原来是1,结果还是1,原来是0,结果位还
是0.高于8位的,0xff都是0,所以无论是0还是1,结果都是0.
java 0xff是什么意思_Java中为何与0xff进行与运算相关推荐
- java boolean几个字节_Java中boolean类型到底占用多少个字节?
1.时间:2017-07-03 07:37:06YuanMxy 2.问题描述:今天在复习java基础的时候发现一小问题,Java中boolean类型到底占用多少个字节? 3.问题解答: (1)什么是b ...
- java 基本类型的引用_Java中的基本数据类型与引用数据类型
一.基本数据类型 byte.short.int.long(整数类型) float.double(浮点数类型) char(字符型) boolean(布尔类型 ) Java数据大多数存放在堆栈中.栈区:存 ...
- java常见的报错_Java中常见的错误有哪些?
原标题:Java中常见的错误有哪些? 1.java.lang.Error 错误.是所有错误的基类,用于标识严重的程序运行问题.这些问题通常描述一些不应被应用程序捕获的反常情况. 原因: 1.对系统所访 ...
- java i 线程不安全_java中的++i是线程安全的吗?
java中的++i是线程安全的吗?为什么?怎么使它线程安全呢? 先说答案: 非线程安全 先说下为什么是非线程安全的? 从Java内存模型说起 Java内存模型规定了所有的便利都存储在主内存中,每个线程 ...
- java原始类型和引用类型_Java中的8种原始类型
java原始类型和引用类型 几年前,当我开始编辑Java Basics系列时,我认为将一些非常详细的信息拉到自己的帖子中是很有意义的. 这样,初学者的内容就更容易消化了. 首先,我将介绍有关Java的 ...
- java如何使截取字符串_java中如何截取字符串中的指定一部分
java中如何截取字符串中的指定一部分 关注:136 答案:4 mip版 解决时间 2021-02-06 13:27 提问者妳涐執唸汰深 2021-02-06 08:56 精选 比如 F:\wor ...
- 随机数在java 自旋锁的运用_Java 中自旋锁的实现
Java中初始是使用mutex互斥锁,因为互斥锁是会线程等待挂起,而对获取锁后的操作时间比较短暂的应用场景来说,这样的锁会让竞争锁的线程不停的park,unpark 的操作,这样的系统的调用性能是非常 ...
- java swap函数的包_java中swap函数
? ? ? 第1章 第2章 第3章 第4章 java语言概述 Java语言基础 对象与类 ...("swap方法里,a的值是" + a + ";b的值 是" + ...
- java截取字符串的一部分_java中如何截取字符串中的指定一部分
展开全部 java用substring函数截取string中一段字符串 在String中有两个substring()函数,如下: 一:String.substring(int start) 参数: s ...
最新文章
- 双屏全屏跳回到主屏_双屏双倍乐趣?华硕灵耀X2 Duo笔记本评测
- Linux 下的动态库、静态库与环境变量
- C++ STL容器总结之vector(超详细版)
- 导致散户亏损的三大根源
- AjaxJson笔记(1)
- spray.json.JsonParser$ParsingException: Unexpected end-of-input at input index
- python面向对象编程138讲_Python面向对象编程简单讲解
- RewriteCond 详解
- 【网络安全工程师面试合集】——什么是IP安全 IPsec
- [asp.net mvc]自定义filter
- 当head遇上runat=server之后发生的纠结之事
- ROS的学习(三)创建一个工作空间
- Android音量调节
- man时括号里的数字是啥意思
- 1060 Are They Equal (25 分)科学计数法,stl中string的各种函数用法
- python语言程序设计袁方答案_北邮“爱课堂”教学平台
- vue ie8 兼容方案
- Pytorch-> pack_padded_sequence()和pad_packed_sequence()
- Hadoop安装snappy(编译源码)
- C# 获取图片,Pdf中的文字
热门文章
- [0CTF 2016] piapiapia
- 解决mfc140u.dll文件在Windows找不到
- 基于LLVM的编译原理简明教程: 写一个自己的编译器​
- 云会议发展势如破竹 谁会成为最大赢家
- 笔记本wifi与台式机、内网服务器共网、共享wifi详细教程
- 什么是EI-EI检索是什么意思?
- Operating System Not Found解决方案
- python怎么玩_怎么用Python玩GTA5?跟着教程玩!
- dw本地服务器文件夹,dw设置本地服务器
- NodeJS 响应式故宫文化宣传网站计算机毕设源码61557