Java的位运算符——&0xFF的运算与讲解
快放元旦假,没心思做啥的事,就去翻以前的代码遇到这句
,但是又不懂,所以只好上网找,终于懂了那么一点点。
所以那个大神看到我说的有问题,请指出!谢谢。。。。
一:首先区分一下 A~F的意思先
A,代表十进制的10,二进制的1010。
B,代表十进制的11,二进制的1011。
C,代表十进制的12,二进制的1100。
D,代表十进制的13,二进制的1101。
E,代表十进制的14,二进制的1110。
F,代表十进制的15,二进制的1111。e
二:区分 &,丨,^的运算规则
& (按位与运算符)表示:
两个操作数中位都为1,结果为1
如果两个操作中位一个1另一个0 ,结果为0
即运算规则:0&0=0; 0&1=0; 1&0=0; 1&1=1;
例如:1010 & 1110= 1010 |(按位或运算符)表示:
两个操作中位只有一个为1,结果就等与1
即运算规则:0|0=0; 0|1=1; 1|0=1; 1|1=1 例如: 1010 | 1111 =1111 ^(异或 运算符)表示
两个中位如果相同的数值,结果为 0,
如果两个中位 数值不同,结果为1.
即运行结果:同数值: 0^0=0;1^1=0;
不同数值: 0^1=1; 1^0=1; 例如:1010 ^ 1110 = 0100
~(取反运算符)表示:(这个我不太懂)
参加运算的一个数据,按二进制位进行“取反”运算。
即:对一个二进制数按位取反,即将0变1,1变0
运算规则:~1=0; ~0=1; 例如:使一个数的最低位为零,可以表示为:a&~1
~1的值为1111111111111110
3:0x31 (一般看到0x==》16进制数)
0x31计算: 先把0x31转换为 10进制的数 0x31(10)=16*3+1=49
再把得到10进制转 2进制 49(2)=110001
所以 0xFF 也是这样计算的 F==>表示15进制
0xFF(10)= 16*15+15=255
255 (2) = 11111111
0x31 & 0xFF 的 计算
因为0xFF得出的结果 8个字节,而位数要相同,那么 0x31就要补0,因为在0x31的二进制为110001已经又6个字节了,那么再前面加两个0即可(这句其实我觉得我说的有点怪怪的)
a): 0x31 & 0xFF
= 00110001 & 11111111
=00110001
=110001
b): 0x31 | 0xFF
= 00110001 | 11111111
=11111111
Java的位运算符——&0xFF的运算与讲解的更多相关文章
- Java基础-位运算符Bitwise Operators
Java基础-位运算符Bitwise Operators 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.位运算特点 位运算符分为按位与(&),按位或(|),按位异或(^ ...
- Java的位运算符实例——与(&)、非(~)、或(|)、异或(^)
一.Java的位运算符实例——与(&).非(~).或(|).异或(^) 1.与(&) 0 & 2 = 0 0 0 0 0 1 0 0 1 0 2.非(~) ~0 = 7 0 0 ...
- Java中的位运算符、移位运算
一.位运算 Java中有4个位运算,它们的运算规则如下: (1)按位与 (&) :两位全为1,结果为1,否则为0: (2)按位或 (|) :两位有一个为1,结果为1,否则为0: (3) ...
- Java的位运算符与二进制转换
转换: Java整型数据类型有:byte.char.short.int.long.要把它们转换成二进制的原码形式,必须明白他们各占几个字节.,一个字节==8位数 数据类型 ...
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
位运算符主要针对二进制,它包括了:“与”.“非”.“或”.“异或”.从表面上看似乎有点像逻辑运算符,但逻辑运算符是针对两个关系运算符来进行逻辑运算,而位运算符主要针对两个二进制数的位进行逻辑运算.下面 ...
- Java中位运算符的使用
先预知识: 数据在计算机中是以二进制的形式进行存储的,而二进制在内存中是以补码的形式进行存储的.在介绍位运算之前,首先来看一下原码.反码和补码的概念.由于正数的原码.反码和补码的形式都是一样的,所以以 ...
- 恶补java基础 位运算符
以前不知道在哪看过别人写博客里的一句话 “越学的深入觉得自己会的东西越少”.最近研究了一下java的基础算法 hash表 被一些位运算符搞的头都大了 决心花一些时间研究一下以前一直觉得没用的东西! ...
- Java的位运算符—— 与(&)、非(~)、或(|)、异或(^)
位运算符主要针对二进制,它包括了:“与”.“非”.“或”.“异或”.从表面上看似乎有点像逻辑运算符,但逻辑运算符是针对两个关系运算符来进行逻辑运算,而位运算符主要针对两个二进制数的位进行逻辑运算.下面 ...
- Java的位运算符具体解释实例——与(&)、非(~)、或(|)、异或(^)
位运算符主要针对二进制,它包含了:“与”.“非”.“或”.“异或”.从表面上看似乎有点像逻辑运算符,但逻辑运算符是针对两个关系运算符来进行逻辑运算,而位运算符主要针对两个二进制数的位进行逻辑运算.以下 ...
随机推荐
- Android中的消息机制
在分析Android消息机制之前.我们先来看一段代码: public class MainActivity extends Activity implements View.OnClickListen ...
- UTF8有很明显的特征:如果最高字节为0,则表示一个英文字符(与ASCII完全相同)。如果有2个以上1,表示是首个字节。如果最高位是10,则表示一个中间字节。
摘自<Qt中的C++技术.pdf> page 33
- ubuntu16.04下snort的安装(官方文档安装)(图文详解)
不多说,直接上干货! 最近为了科研,需要安装和使用Snort. snort的官网 https://www.snort.org/ Snort作为一款优秀的开源主机入侵检测系统,在windows和Linu ...
- vuejs on
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- OpenGL编程(五)绘直线以及分析绘直线的算法
这次主要实现在窗口上绘制点.线以及修改其属性,另外还会分析画直线的原理和相关算法. 1.在窗口指定位置画点 glBegin(GL_POINTS); glEnd(); 使用glBegin()和glEnd ...
- ArchLinux 调节屏幕亮度和音量大小
我使用的是dwm,所以这种琐碎小事还要我们亲自动手, 以后考虑做个脚本,把声音调节.屏幕亮度什么的统统塞进去 屏幕亮度 # 查看亮度最大值 cat /sys/class/backlight/intel ...
- 使用PXE+NFS EFI引导安装RHEL6/7以及Kickstart安装
PXE引导的步骤: 1.开机后选择网络启动,client端向server端的dhcpd发起获取IP地址的dhcp请求. 2.server端分配IP后,dhcpd会同时根据其配置文件,通过TFTP协议发 ...
- parted---磁盘分区
parted命令是由GNU组织开发的一款功能强大的磁盘分区和分区大小调整工具,与fdisk不同,它支持调整分区的大小.作为一种设计用于Linux的工具,它没有构建成处理与fdisk关联的多种分区类型, ...
- 紫书 习题 10-11 UVa 1646(斐波那契+高精度)
自己用手算一下可以发现是斐波那契数列,然后因为数字很大,用高精度 以后做题的时候记得算几个数据找规律 #include<cstdio> #include<cmath> #inc ...
- Android编译环境配置
Android编译环境配置 网上关于Android编译环境配置的整理资料有不少,经整理亲测后,希望能给需要的亲们提供帮助. 主要分为四步: 1.安装JDK(Java Standard Edition ...
e