`

位运算的理解及用途

阅读更多

1、位运算的理解

位运算就是按位运算,例如:整数数1 在计算机里表示为 00000001 --单字节 00000000 00000001 -- 双字节。放在java里,若数值属于int类型则为 4字节,若数值属于byte 则为 2字节 

位运算实例: 
byte a,b=1;
// a,b 的二进制值都是,00000000 0000001
byte c=a&b;
//a,b 进行逻辑与 
// a     -> 00000000 00000001 
// b     -> 00000000 00000001
// a&b -> 00000000 00000001 (按位取与,1表示true 0 表示false,所以,只有个位两个数都是true)

同理其他的位运算也是如此理解。

2、实际应用: 

byte a= - 40; // 整数值就应该为 128(byte负数最小范围)-40(实际据最小值多少)+128(去掉了符号位,故数值位增一位,表达范围增128)=216
// 11011000
int c=a&0xff;// 这句其实等同于 int c; int tmp=(int)a; int true_8bit=0xff;c=tmp&true_8bit; 即将byte强制转换成了int后操作
// a    -> 111111111 11111111 11111111 11011000 由于是负数,转为int 除了扩充空间外,还保留符号
// 0xff -> 000000000 00000000 00000000 11111111 (0xff 的二进制值)
// c    -> 000000000 00000000 00000000 11011000 =216

这样运算后我们发现,这次运算其实起到了去掉前3个字节(由于转int 而扩展出来的本来不应存在的符号位)。测试一下可以发现c的值就是216

这样就完成了 byte 向int 型数据的转换。在使用java进行网络开发时,我们往往直接得到的就是byte,此时经常会出现转换成int 后进行判断等场景。

也有少数设备使用位进行状态标识。如:int k= 4 = 00000100,则表示第三个字段是真,事先规定好使用第三位来表示“第三种情况”。则判断是否为“第三种情况”的时候可直接 使用 int m= k & 4 直接判断m是否为0 即可得出是否包含了“第三种情况”。

分享到:
评论

相关推荐

    位运算使用技巧

    ### 位运算使用技巧 #### 一、位运算概述 ...通过对位运算的理解和熟练运用,开发者可以编写出更加高效、优雅的代码。无论是对于初学者还是经验丰富的程序员来说,掌握位运算都是非常有价值的技能。

    按位与 按位或 按位异或 运算.pdf

    在编程语言中,按位运算是一种基本的运算类型,它涉及到对整数的二进制表示进行操作。...理解这些基本的位运算对于进行底层的计算机编程和优化至关重要,它们在处理二进制数据、内存管理、高效算法等方面都有广泛应用。

    C语言程序设计位运算PPT学习教案.pptx

    C语言中的位运算是一种在计算机科学中非常基础且重要的概念,尤其对于理解计算机底层工作原理和进行高效编程至关重要。位运算直接操作二进制数的每一位,它涉及到计算机存储和处理数据的基本方式。以下是关于位运算...

    三菱PLC浮点数运算指令

    三菱PLC(Programmable Logic Controller)是三菱电机生产的一款工业用可编程逻辑...因此,无论是在学习阶段还是在实际的项目开发中,深入理解并能够灵活运用这些浮点数运算指令,对于PLC程序员来说是一项必备的技能。

    16位数据取高其8位,低8位,高4位,低4位数据,并重新组合

    例如,16位颜色深度的图像每个像素可能由红、绿、蓝三个通道组成,每个通道分配5位(总共15位),剩下1位用于其他用途。如果我们要将16位数据转换为12位,可以丢弃每个通道的最低位。同样,如果我们处理10位图像,...

    位运算异或和解释与学习

    位运算在计算机科学中扮演着重要的角色,尤其是在底层编程、数据处理和算法...掌握好异或的性质和用法,对于理解和解决各种位级问题大有裨益。在编程中灵活运用位运算,能够提高代码效率,有时还能简化问题的复杂度。

    02-逗号运算与位运算(PPT).pdf

    位运算在实际应用中有多种用途,例如: - 判断奇偶性:n & 1,如果结果为1,则n为奇数,否则为偶数。 - 快速计算2的n次方:2 (n-1) 或者 1 。 - 计算平均值:(m+n) >> 1,对于两个正整数m和n,可以得到它们的平均...

    C程序设计位运算实用PPT学习教案.pptx

    理解并熟练运用位运算能够提高程序的效率和灵活性,尤其在处理二进制数据密集型的问题时。在实际编程中,位运算可以用来实现位掩码、位域操作、高效的数据压缩和解压等技术。通过掌握这些位运算技巧,程序员可以更好...

    位运算实现十进制转换为二进制

    此外,位运算还有其他用途,例如设置、清除或切换位,以及检测特定位模式。在位运算中,我们还可以使用按位或(|)来设置某位,按位非(~)来翻转所有位,以及按位异或(^)来切换某位。这些操作在编程中用于各种...

    《C语言程序设计教程(第2版)》第11章-位运算.ppt

    \n\n总结:《C语言程序设计教程(第2版)》第11章讲解了位运算,包括数值在计算机中的表示(原码、反码、补码)以及6种位运算操作(按位与、按位或、按位异或、按位取反、位左移、位右移)的规则、用途和实现方法。...

    第三C语言讲解位运算PPT课件.pptx

    按位与运算的一个常见用途是清零,即如果你想把一个数值的某一位设置为0,你可以使用一个对应位置为0的掩码进行按位与操作。此外,它还能用于提取一个数的特定位,例如取低字节或高字节。 接下来是“按位或”运算符...

    位运算 (2).pdf

    本文将深入探讨位运算,包括其基本概念、常见的位运算符以及它们的用途。 首先,计算机中的数据是以二进制形式存储的,即用0和1表示。一个二进制位(bit)是最小的数据单位,8个二进位组成一个字节(byte),一个字...

    C语言程序设计结构体共用体及位运算PPT学习教案.pptx

    此外,位运算在C语言中用于对二进制位进行操作,对于理解计算机底层工作原理和高效编程至关重要。 结构体是一种自定义的数据类型,它允许你创建包含不同类型数据的复合对象。结构体的定义分为两种方式: 1. 不带...

    TEC-8运算器组成实验报告.docx

    通过这个实验,学生不仅理解了运算器的基本工作原理,还掌握了实际操作硬件系统的方法,这对于深入理解计算机的内部运作具有重要意义。同时,这个实验也强调了动手能力和问题解决能力的培养,是计算机组成学习的重要...

    易语言加法运算源码.zip

    通过这个加法运算的源码示例,你可以学习到易语言的基本语法结构,理解加法运算在程序中的实现方式,以及如何编写和调试简单的程序。这将为你后续学习更复杂的易语言程序打下基础。在学习过程中,不仅要关注代码的...

    解析取模运算% 和位与运算& 之间的关系详解

    在编程领域,取模运算 `%` 和位与运算 `&` 都是非常常见的操作,它们各自有着特定的应用场景。本文将深入探讨这两种运算符的关系及其在实际编程中的用途。 首先,取模运算 `%` 是数学中的余数运算,用于求解整数除...

    Java位运算符详解[文].pdf

    - 特殊用途:用于清零,将一个数值与一个全零的数进行与运算,所有位都会变成0。此外,它还可以用来提取一个数的特定位,通过与一个对应位置为1,其他位为0的数进行与运算。 2. **按位或运算符(|)**: - 它对两...

    计算机组成原理课程设计报告

    本课程设计报告围绕着计算机组成原理的核心概念,通过算法实现来加深理解,具体涉及了定点小数的机器数表示、定点小数的变形补码加减运算、定点小数的原码一位乘法运算以及浮点数的加减运算。 1. 定点小数的机器数...

    TI dsp28335浮点运算库

    库的文档通常会详细描述每个函数的用途、参数含义、返回值和注意事项,帮助开发者快速理解和应用。同时,库的示例代码和测试程序也是学习和验证算法效果的重要资源。 总的来说,TI dsp28335浮点运算库是TMS320F...

Global site tag (gtag.js) - Google Analytics