`
greemranqq
  • 浏览: 972065 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

JAVA的位操作符

阅读更多

最近几种进制,加上各种位操作符,发现都比较模糊,不能完全掌握,这里就再熟悉熟悉。

 

1.按位操作符 :

   按位操作符是用来操作基本数据类型中的单个bit,即二进制位,会对两个参数执行布尔代数运算,获得结果。

   与(&)运算:

   1&1 = 1, 1&0 = 0, 0&0  = 0; 这里相当于做乘法,也可以认为男女双方都有感觉才有结果。

   或(|)运算:

   1 | 1 = 1, 1|0=1, 0|0 = 0;这表示条件宽松,只有有一方有感觉,都可以有结果。

   异或(^)运算

   1 ^ 1 = 0; 1^0 = 1;0 ^ 0 = 0; 这表示两个冤家,非要不同,经过磨难才能有结果。

    上面都是二元操作符,而 非(~) ,是一元操作符,也叫取反操作。连符号位 也会取反哦,

    

    

    注意:上面的二元操作符可以和 “=”连用,比如:&=,|=。 一元非不行

 

2.移位操作符

   这也是操作二进制的。

   >> <<: 带符号的左右移位,也就是说移动之后,高低位 补 0 还是1 根据 正负数判定。1 负数,0正数

   >> >:  无符号右移,无论正负数,前面(高位)都补0

   注意:所有的位移运算都会先转换成 int 到二进制,再进行操作。先看移动过程

 

   

	public static void main(String[] args) {
	int a = 2;
	// 原始数据
	System.out.println(Integer.toBinaryString(a));
	//00000000000000000000000000000010  前面的0,会被省略
	System.out.println(Integer.toBinaryString(-a));
	//11111111111111111111111111111110
	
	// 带符号的 右移动,这里用负数,方便观察
	
	System.out.println(Integer.toBinaryString(-a>>1));
	//原始:11111111111111111111111111111110
	//现在:11111111111111111111111111111111 比较,右移1位,前面自动加符号1
	
	System.out.println(Integer.toBinaryString(-a<<1));
	//原始:11111111111111111111111111111110
	//现在:11111111111111111111111111111100 比较,左移1位,后面默认加0 
	
	// 看无符号 移动,也就是不管前面符号位
	System.out.println(Integer.toBinaryString(-a>>>1));
	//原始:11111111111111111111111111111110
	//现在:1111111111111111111111111111111   比较,发现少了一位,因为无符号,默认前面补0
	
	// 这个无符号 ,不能左移动 - -!
	//System.out.println(Integer.toBinaryString(-a<<<1));
	}

 

     下面看看 特殊的移动。

    

byte b = 127;
	System.out.println("原始:"+Integer.toBinaryString(b));
	//原始:1111111
	//现在:11111110  这里移动了就是254了,已经默认转换成int 了。
	System.out.println(b<<1);
	// 这里如果强行转byte,会得到 -2.
	// int 和 byte 的转换,超过127,128 就会 成 -128,129 就成 -127.这样循环。
	
	
	int c =1;
	// 因为int 只有32位,到31位的时候,就成负数了。
	// 如果继续移动,就开始循环了。
	for(int i =1;i<34;i++){
		System.out.println(i+" : "+Integer.toBinaryString(c<<i));
		System.out.println(c<<i);
		}
	}

 

  这里就是一些简单的位移运算 方式了

   

0
2
分享到:
评论

相关推荐

    java 按位操作符的使用

    在Java中,按位操作符用于对整数进行位级别的操作 按位与(&)操作符 按位或(|)操作符 按位异或(^)操作符 按位取反(~)操作符 左移()操作符 右移(&gt;&gt;)操作符

    java 移位操作符的使用

    Java中的移位操作符用于对二进制数进行左移()、右移(&gt;&gt;)和无符号右移(&gt;&gt;&gt;)操作。 左移()操作符:将一个数的所有位向左移动指定的位数,右侧空出的位用0填充。 右移(&gt;&gt;)操作符:将一个数的所有位向右移动...

    java操作符

    Java 操作符与变量初始化是编程中至关重要的概念,它们直接影响到代码的正确性和效率。在 Java 中,操作符用于执行特定的操作,如比较、算术运算或逻辑运算,而变量初始化则是确保变量具备合适初始值的过程。 1. **...

    Java操作符总结-动力节点共20页.pdf.zip

    Java编程语言中的操作符是程序设计中的重要组成部分,它们用于执行特定的数学或逻辑运算,帮助我们...动力节点的这20页总结,全面覆盖了Java操作符的基础知识,对于初学者和有经验的开发者来说,都是很好的参考资料。

    java 三元操作符的使用

    在Java中,三元操作符是一种简洁的条件表达式,用于在两个值之间进行选择。

    Java操作符的优先级和结合性

    以下是一个完整的Java操作符优先级列表: 1. 后缀运算符:`[ ]`、`.`、`( )`(函数调用) —— 这些操作符从左到右执行。例如,`array[index]`、`object.method()` 和 `(expression)`。 2. 单目运算符:`!`、`~`、...

    java 关系操作符的使用

    在 Java 中,关系操作符用于判断两个值之间的关系,并返回一个布尔值(true 或 false)。

    Java基础知识之数据类型和操作符

    Java是一种强类型语言,这意味着在Java中,每个变量都必须先声明其数据类型,然后才能使用。Java的数据类型可以分为两类:基本... :)和位操作符(&、|、^、~、、&gt;&gt;)。使用这些操作符时,需要注意它们的优先级和结合性

    java 逻辑操作符的使用

    在Java中,有三种逻辑操作符用于处理布尔值(boolean):与(&&)、或(||)和非(!)。

    操作符学习案例

    5. **位操作符**:对二进制位进行操作,如`&`(按位与)、`|`(按位或)、`^`(按位异或)和`~`(按位非)。例如: ```java int bitwiseResult = a & b; // 对a和b的二进制表示执行按位与 ``` 6. **增量和减量操作符...

    Java语言中的操作符及操作符的优先级[借鉴].pdf

    Java语言中的操作符是编程语法的重要组成部分,它们用于执行各种计算和逻辑判断。理解操作符的用法和优先级对于编写高效、准确的代码至关重要。本文将详细解析Java中的主要操作符及其应用。 首先,我们来看算术操作...

    详解Java的按位操作符

    详解Java的按位操作符 Java的按位操作符是指在Java语言中对整数基本数据类型中的单个“比特”(bit)进行操作的符号。这些操作符可以分为两大类:按位逻辑操作符和移位操作符。 按位逻辑操作符 按位逻辑操作符是指...

    详解Java的位操作符

    Java的位操作符是编程语言中用于直接操纵数据的最小单位——比特(bit)的工具。这些操作符在处理内存效率、数据存储和计算时特别有用。本文将深入讲解Java中的位操作符,包括与(&)、或(|)、异或(^)、非(~)以及移位...

    java的应用领域 操作符

    3. **移动应用**:Android操作系统广泛采用Java作为其主要的开发语言。Android SDK允许开发者使用Java或Kotlin(基于Java虚拟机的现代语言)创建原生移动应用。Java的可移植性使得开发者能轻松地在不同设备上部署...

    java 位操作集合以及应用技巧

    一、位操作符 1. 按位与(&):两个操作数对应位都为1时,结果位才为1,否则为0。 2. 按位或(|):两个操作数对应位至少有一个为1时,结果位为1,否则为0。 3. 按位异或(^):两个操作数对应位相同时结果位为0,不同时为...

    Java关系操作符简写介绍

    在Java编程语言中,关系操作符是用于比较两个值之间关系的关键字。这些操作符帮助开发者确定变量或表达式之间的大小、相等性或其他关系。下面是对Java中常见关系操作符的详细介绍及其简写形式: 1. **等于操作符 (=...

    java位运算符之左移操作视频

    左移操作符()是位运算符之一,它在Java中有着特定的应用和理解。本篇文章将深入探讨Java中的左移操作符及其相关知识点。 一、位运算符概述 位运算符直接作用于二进制位,它们包括:左移(),右移(&gt;&gt;),无符号...

    windows的64位操作系统下的java的jdk17安装包

    - **Pattern Matching for `instanceof`**: 新的语法结构允许开发者在`instanceof`操作符中直接匹配对象的类型,简化代码。 - **Sealed Classes**: 这种新的类特性增加了对类继承的控制,限制了哪些类可以扩展密封...

    java7 32位版

    2. **类型推断**:通过钻石操作符(),Java 7简化了泛型实例化,使得编译器能够推断出集合初始化时的类型,减少了冗余的类型参数。 3. **字符串拼接优化**:Java 7改进了字符串拼接,当使用`+`操作符连接字符串时...

Global site tag (gtag.js) - Google Analytics