`
wode66
  • 浏览: 743252 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

位操作

阅读更多

一、位操作

      如果两个输入位都是 1,则按位“与”操作符(&)生成一个输出位 1;否则生成一个输出位 0。

      如果两个输入位里只要有一个是 1,则按位“或”操作符(|)生成一个输出位 1;只有在两个输入位都是 0 的情况下,它才会生成一个输出位 0。

      如果两个输入位的某一个是 1,但不全都是 1,那么“异或”操作(^)生成一个输出位 1。

      按位“非”(~ ,也称为取补运算,ones compliement operator )属于一元操作符;它只对一个操作数进行操作(其他位操作是二元运算)。按位“非”生成与输入位相反的值——若输入 0,则输出 1;输入 1,则输
出 0。

二、移位操作符(<<、>>和>>>共三种)

       移位操作符操作的运算对象也是二进制的“位”,但是它们只可以被用来处理整数类型(基本类型的一种)。

       1、左移位操作符(<<)能将操作符左边的运算对象向左移动操作符右侧指定的位数(在低位补 0)。(左移一位,相当于乘以2)

       2、“有符号”右移位操作符(>>)则将操作符左边的运算对象向右移动操作符右侧指定的位数。“有符号”右移位操作符使用了“符号扩展”:若符号为正,则在高位插入 0;若符号为负,则在高位插入 1。(右移一位,相当于除以2)

       3、Java 中增加了一种“无符号”右移位操作符(>>>),它使用了“零扩展”:无论正负,都在高位插入 0。这一操作符是 C 或 C++没有的。

       注意:只有三种移位操作符,没有提供<<<移位操作。

三、工具类(该工具可以打印出一个int类型变量的32位值)

public class BinaryUtils {
	public static String binaryIntToString(int i) {
		StringBuffer sb = new StringBuffer();
		for (int j = 31; j >= 0; j--)
			if (((1 << j) & i) != 0)
				sb.append("1");
			else
				sb.append("0");
		return sb.toString();
	}
	public static String binaryLongToString( long l) {
		StringBuffer sb = new StringBuffer();
		for (int i = 63; i >= 0; i--)
			if (((1L << i) & l) != 0)
				sb.append("1");
			else
				sb.append("0");
		return sb.toString();
	}
}

 

分享到:
评论

相关推荐

    位操作全面总结

    位操作是计算机科学中的基础概念之一,尤其在C语言中有着广泛的应用。在计算机系统中,所有的数据都是以二进制的形式存储的,位操作允许程序员直接对这些二进制数据进行操作,进行数据的置位、清除和状态切换等。位...

    一个64位操作系统的设计与实现(运行效果图)-0_一个64位操作系统的设计与实现_

    64位操作系统的设计与实现是计算机科学中的一个重要领域,它涉及到计算机硬件、软件工程、编译原理等多个技术层面。在本项目中,我们看到的是一个实现了64位操作系统的源码,以及其运行效果的展示。这样的系统能够...

    c++ 位操作 总结

    C++位操作总结 C++位操作是C++语言中的一种基本操作,用于处理二进制数据的位操作。C++位操作可以使语义更加明确,减少了C语言位操作的晦涩性,功能更加强大。 传统的C语言方式的位操作 在C语言中,位操作是使用...

    VB基础操作 -- VB位操作

    在编程世界中,位操作是一种低级别的操作,它直接对二进制位进行操作,而不仅仅是数值。在C语言中,位操作通过移位运算符(如和&gt;&gt;)实现,但VB(Visual Basic)作为高级语言,其语法中并未直接提供这样的功能。然而...

    一个64位操作系统的设计与实现.docx

    "64位操作系统的设计与实现" 本文的目的在于设计并实现一个高效的 64 位操作系统,以适应当前计算机硬件的发展和软件需求的增长。该操作系统将具有以下特点:支持 64 位地址空间和处理器架构;提高系统运行效率和...

    一个64位操作系统的设计与实现.zip

    64位操作系统是现代计算机系统的核心组成部分,它们能够处理更大的内存空间和更复杂的计算任务。在深入探讨64位操作系统的设计与实现之前,首先要理解64位架构的基础知识。 64位架构指的是处理器能够直接寻址的最大...

    深入探究 C语言位操作

    在C语言中,位操作是一种低级别的编程技术,它允许程序员直接对数据的二进制位进行操作。这种操作在处理硬件控制、数据转换、内存优化等场景时尤其有用,因为它们可以提供高效的运算手段。以下是对C语言位操作的详细...

    单片机的C语言中位操作用法

    单片机的C语言中位操作用法是嵌入式系统开发中不可或缺的一部分,尤其在控制外围设备、处理硬件状态以及优化代码效率方面扮演着关键角色。本文将深入探讨单片机C语言中的位操作技术,包括位运算符的使用、位操作的...

    678143 一个64位操作系统的设计与实现.rar

    64位操作系统是现代计算机系统的核心组成部分,它们能够处理更大的内存空间和更复杂的计算任务。在"64位操作系统的设计与实现"这个压缩包中,包含的资源可能是一份详细探讨这一主题的教程或者研究资料。尽管没有提供...

    易语言汇编实现位操作命令

    在易语言中,汇编实现位操作命令是深入底层操作的重要组成部分,对于理解计算机内部工作原理和优化代码性能具有重要意义。下面将详细阐述这些位操作命令及其在易语言汇编中的实现。 1. **bNot** (按位取反): 这个...

    51单片机程序框架,带位操作

    本文将深入探讨51单片机的程序框架以及如何在编程过程中进行位操作,这对于理解单片机底层工作原理及优化代码性能至关重要。 51单片机的程序框架通常包括初始化部分、主循环以及中断服务子程序。初始化部分是程序...

    AVR单片机C语言程序设计中的位操作

    AVR单片机的C语言程序设计中,位操作是一个重要的概念,特别是在处理与硬件交互的低级编程中。在标准C语言教材中,位运算通常不是重点,但在单片机编程中,由于寄存器通常是以位为单位进行控制的,因此掌握位操作至...

    C++按位操作

    C++按位操作

    C语言位操作——复习笔记 绝好的学习资料

    C语言中的位操作是编程中的一个基础且强大的工具,它涉及到计算机硬件层面的二进制数据处理。在C语言中,位操作允许我们直接对内存中的位进行读写,这在处理硬件寄存器、节省存储空间或者进行高效计算时非常有用。...

    32位和64位操作系统的不同.pdf

    32位与64位操作系统的区别主要体现在设计初衷、配置要求、运算速度、寻址能力以及软件普及情况等方面。 首先,从设计初衷来看,64位操作系统是为了满足机械设计、三维动画、视频编辑创作以及科学计算等需要大量内存...

    信捷 XC系列PLC应用之位操作例程.rar

    本资料包“信捷 XC系列PLC应用之位操作例程.rar”主要针对的是如何在信捷XC系列PLC中进行位操作,这对于理解和掌握PLC编程至关重要。 位操作是PLC编程的基础,涉及到对输入和输出点的单个二进制位进行读写,是控制...

    Windows清理助手 64位操作系统用

    【Windows清理助手】是一款专为64位操作系统设计的实用工具,主要功能是帮助用户检测并清理电脑中的木马病毒和恶意程序,保障系统安全。它以其绿色小巧、无需安装的特点,深受用户喜爱,能够在不占用过多系统资源的...

    位操作经典例题

    各种位操作的经典例题,卡耐基梅陇的经典题,所有答案豆子啊里面

Global site tag (gtag.js) - Google Analytics