`
desert3
  • 浏览: 2159532 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

java 位操作 bitwise(按位) operation bit

    博客分类:
  • Java
 
阅读更多
操作longValue = longValue | (1 << n); 可以在longValue的2进制表示中,把从右边数到左边数第n + 1位的值设置为1,并且不影响其他位上面的值   即用0和2进制值变量x做或|or操作,不会影响到2进制变量x的值

操作longValue = longValue & ~(1 << n); 可以在longValue的2进制表示中,把从右边数到左边数第n + 1位设置为0,并且不影响其他位上面的值   即用1和2进制值变量x做与&and操作,不会影响到2进制变量x的值

操作System.out.println((longValue >> n & 1) == 1); 可以判断值longValue的2进制表示中,从右边数到左边第n + 1位的值是0false 还是1true

public class bitOperation {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		long longValue = 0;
		
		longValue = longValue | (1 << 0);
		// 1
		System.out.println(Long.toBinaryString(longValue));
		longValue = longValue | (1 << 1);
		// 11
		System.out.println(Long.toBinaryString(longValue));
		longValue = longValue | (1 << 4);
		// 10011
		System.out.println(Long.toBinaryString(longValue));
		longValue = longValue | (1 << 5);
		// 110011
		System.out.println(Long.toBinaryString(longValue));
		longValue = longValue | (1 << 6);
		// 1110011
		System.out.println(Long.toBinaryString(longValue));

		String hex = Long.toBinaryString(longValue);
		// 1110011
		System.out.println(hex);
		// 115
		System.out.println(Integer.valueOf("1110011", 2));
		// 1110011
		System.out.println(Long.toBinaryString(longValue >> 0));
		// 1
		System.out.println(Long.toBinaryString(longValue >> 0 & 1));
		// 111001
		System.out.println(Long.toBinaryString(longValue >> 1));
		// 1
		System.out.println(Long.toBinaryString(longValue >> 1 & 1));
		// true
		System.out.println((longValue >> 0 & 1) == 1);
		// true
		System.out.println((longValue >> 1 & 1) == 1);
		// false
		System.out.println((longValue >> 2 & 1) == 1);
		// false
		System.out.println((longValue >> 3 & 1) == 1);
		// true
		System.out.println((longValue >> 4 & 1) == 1);
		// true
		System.out.println((longValue >> 5 & 1) == 1);
		// true
		System.out.println((longValue >> 6 & 1) == 1);
		// false
		System.out.println((longValue >> 7 & 1) == 1);

		// Demonstrate the bitwise logical operators.
		bitLogic();
		// Left shifting a byte value.
		byteShift();
	}

	/**
	 * Left shifting a byte value.
	 */
	private static void byteShift() {
		byte a = 64, b;
		int i;

		i = a << 2;
		b = (byte) (a << 2);

		// Original value of a: 64
		System.out.println("Original value of a: " + a);
		// i and b: 256 0
		System.out.println("i and b: " + i + " " + b);
		System.out.println("\r\n");
	}

	/**
	 * Demonstrate the bitwise logical operators.
	 */
	private static void bitLogic() {
		String binary[] = { "0000", "0001", "0010", "0011", "0100", "0101",
				"0110", "0111", "1000", "1001", "1010", "1011", "1100", "1101",
				"1110", "1111"

		};
		int a = 3; // 0 + 2 + 1 or 0011 in binary
		int b = 6; // 4 + 2 + 0 or 0110 in binary
		int c = a | b;
		int d = a & b;
		int e = a ^ b;
		int f = (~a & b) | (a & ~b);
		int g = ~a & 0x0f;

		// a = 0011 = 3
		System.out.println(" a = " + binary[a] + " = " + a);
		// b = 0110 = 6
		System.out.println(" b = " + binary[b] + " = " + b);
		// a|b = 0111 = 7
		System.out.println(" a|b = " + binary[c] + " = " + c);
		// a&b = 0010 = 2
		System.out.println(" a&b = " + binary[d] + " = " + d);
		// a^b = 0101 = 5
		System.out.println(" a^b = " + binary[e] + " = " + e);
		// ~a&b|a&~b = 0101 = 5
		System.out.println("~a&b|a&~b = " + binary[f] + " = " + f);
		// ~a = 1100 = 12
		System.out.println(" ~a = " + binary[g] + " = " + g);
		System.out.println("\r\n");
	}
}
分享到:
评论

相关推荐

    RBDS.rar_Bitwise operation_operation_rbds

    The decoding algorithm used in RBDS.c is based on error... The program emulates the operation of the encoder and decoder of a binary cyclic codes, using bitwise shifts and xor for modulo g(x) operations.

    java-leetcode题解之Bitwise ORs of Subarrays.java

    java java_leetcode题解之Bitwise ORs of Subarrays.java

    bitwise_operation.rar_matlab例程_C++_

    本资源包“bitwise_operation.rar”包含了关于Matlab和C++中位操作的示例,旨在帮助开发者理解并掌握这两种语言中的位运算技巧。 在Matlab中,位操作主要涉及以下几种类型: 1. **位与(bitand)**:这个操作符"&...

    OpenCV-Python图像位与运算bitwise_and函数详解.rar

    bitwise_and函数就是对两个图像或一个图像与一个掩模进行逐像素的按位与运算。 1. 函数定义: OpenCV的`bitwise_and()`函数接收两个输入参数,通常是两个图像或者一个图像和一个掩模。函数原型如下: ```python cv...

    hive udaf 实现按位取与或

    return "bitwise operation"; } @Override public AggregationBuffer getNewAggregationBuffer() throws HiveException { BitwiseEvaluator buffer = new BitwiseEvaluator(); buffer.result = 0L; // 初始化...

    bitwise.zip

    在IT行业中,位操作(Bitwise Operation)是一种底层的计算技术,它涉及到二进制位的直接操作。在Python编程中,位操作符被广泛应用于处理内存中的数据,尤其是在优化性能和解决特定问题时。本篇文章将深入探讨...

    cpp-Bitwise是一个教育项目能让我们从头开始为计算机创建软件硬件堆栈

    1. **位运算符**:学习如何使用位运算符,如`&`(按位与)、`|`(按位或)、`^`(按位异或)、`~`(按位非)以及左移`和右移`&gt;&gt;`。 2. **数据类型和内存**:了解不同数据类型的位宽,以及它们在内存中的存储方式。...

    Java 中的位运算

    按位逻辑运算符(Bitwise Logical Operators) - **按位与 (`&`)**:对两个二进制数进行按位与操作,只有当两个相应位都为1时结果才为1。 - 示例:`5 & 3 = 1` - `5` 的二进制表示为 `...

    Java中的位运算

    位运算(Bitwise Operators)是计算机科学中的一个基础概念,它直接作用于二进制位上。在Java语言中,位运算符可以应用于所有整型数据类型,如`long`、`int`、`short`、`char`和`byte`。位运算在很多场景下非常有用...

    vb 位左移、右移、置位、复位、位判断

    VB中,这可以通过按位与(Bitwise AND)运算来完成,通常与一个特定的掩码结合使用。如,如果`c`仍为6,用`c And &HF7`(&HF7的二进制为00001111,其与6按位与后,最低位被清零)会得到5(二进制为00000101)。 5. ...

    按位与_按位或_按位异或_运算

    #### 一、按位与运算(Bitwise AND) **定义与功能** 按位与运算符`&`是一种双目运算符,用于实现两个数值对应二进位的与运算。如果两个二进位都为1,则结果为1;否则结果为0。这种运算常用于数据处理中的位操作,...

    bitwise_operation.rar_单片机开发_C++_

    在IT行业中,特别是在单片机开发领域,位操作(Bitwise Operation)是不可或缺的重要技能,尤其是在使用C++编程时。位操作直接作用于二进制数据,能够高效地处理内存和硬件接口,对于理解计算机底层运作和优化代码...

    writd-bitwise-binding.rar_bitwise_界面设计说明_通讯编程

    例如,Writd-Bitwise Binding可能利用位操作来压缩或解析数据包,优化传输效率。 界面设计方面,华为的WCDMA路测仪表强调了易用性和功能性。好的界面设计能够使用户快速理解和操作复杂的系统,这对于需要实时监控和...

    ALU.rar_ALU full adder_Bitwise Or _Verilog bitwise_alu_verilog a

    按位操作在ALU中也扮演着重要角色,包括按位与(Bitwise AND)、按位或(Bitwise OR)和按位异或(Bitwise XOR)。这些操作对应于逻辑门电路中的与门、或门和异或门,对输入位进行逐位操作。例如,按位与操作将两个...

    opencv-bitwise.zip

    在"opencv-bitwise.zip"这个压缩包中,重点是介绍OpenCV中的按位计算操作,这是图像处理中常用的一种技术,常用于组合、修改图像像素或进行遮罩操作。 在计算机视觉领域,图像通常被表示为二维数组,其中每个元素...

    bitwise:JavaScriptTypeScript库可操作位,半字节,字节和缓冲区

    按位 JavaScript / TypeScript库可操作位,半字节,字节和缓冲区。 例子 import bitwise from 'bitwise' const bits = bitwise . byte . read ( 42 ) // [0, 0, 1, 0, 1, 0, 1, 0] bitwise . bits . toString ( ...

    bitwise-rotation:values按位旋转值

    在计算机编程中,循环移位(或按位旋转)是将其操作数的所有位移位的移位运算符。 与算术移位不同,循环移位不会保留数字的符号位,也不会将数字的指数与其有效位数(有时称为尾数)区分开。 —如何使用import ...

    8位数组转成16位数组.rar

    这可以通过位操作,例如位移(bit shifting)和按位与(bitwise AND)、或(bitwise OR)等实现。 3. **串口通信**: - 串口通信是一种古老的通信方式,但仍然广泛应用于嵌入式系统和设备之间,如Arduino或...

    js-bitwise-visualizer:一个简单的应用程序,用于可视化JavaScript中的按位操作

    `js-bitwise-visualizer`是一个专为理解JavaScript按位操作设计的工具,它通过可视化的方式帮助开发者更好地掌握这些概念。 JavaScript中的按位操作符包括: 1. 按位与(&): 对两个操作数的每个位执行逻辑与运算。...

Global site tag (gtag.js) - Google Analytics