`
guanpanpan
  • 浏览: 16946 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

位操作符

 
阅读更多

Why:一些加密,hash算经常会用到

示例数

Integer.toBinaryString(-5)

正值:0000 0000 0000 0000 0000 0000 0000 0101

反码:1111 1111 1111 1111 1111 1111 1111 1010 

+1:  1111 1111 1111 1111 1111 1111 1111 1011就为补码

正负数

正数:0开始,负数1开始

正数编码

正数和0原码,反码,补码是一样的

负数编码

原码:正数原码,前面01.

反码:最前面1不变,后面的取反。

补码:最前面1不变,后面的取反,末位加1.

补码

原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。

java

java在内存中用补码来表示整数。用IEEE-754来表示floatdouble

~求反

1001

&求与 

相乘,两个都为1才为1,其他情况均为0

5表示成:0000 0000 0000 0000 0000 0000 0000 0101

6表示成:0000 0000 0000 0000 0000 0000 0000 0110

进行 & 0000 0000 0000 0000 0000 0000 0000 0100

得到:4

|求或

或,都为0才为0其它都为1

5表示成:0000 0000 0000 0000 0000 0000 0000 0101

6表示成:0000 0000 0000 0000 0000 0000 0000 0110

进行 | 0000 0000 0000 0000 0000 0000 0000 0111

得到:7

^不同

不同为1,相同为0

5表示成:0000 0000 0000 0000 0000 0000 0000 0101

6表示成:0000 0000 0000 0000 0000 0000 0000 0110

进行 ^ 0000 0000 0000 0000 0000 0000 0000 0011

得到:3

<<2

左边移动,右面填充0

5表示成:     0000 0000 0000 0000 0000 0000 0000 0101

进行 <<1 操作:0000 0000 0000 0000 0000 0000 0000 1010

>>除以2

右边移动,左边填充0

5表示成:      0000 0000 0000 0000 0000 0000 0000 0101

进行 >>>1 操作:0000 0000 0000 0000 0000 0000 0000 0010

分享到:
评论

相关推荐

    java 按位操作符的使用

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

    C语言编程开发中用好位操作符[参照].pdf

    在C语言编程中,位操作符是至关重要的工具,它们允许程序员直接操作变量的二进制位,这对于底层系统编程和高效算法实现尤其有用。本文将深入探讨C语言中的六种位操作符:按位与(&), 按位或(|), 按位异或(^), 取反(~)...

    C语言编程开发中用好位操作符

    C语言编程开发中用好位操作符C语言编程开发中用好位操作符C语言编程开发中用好位操作符C语言编程开发中用好位操作符C语言编程开发中用好位操作符C语言编程开发中用好位操作符C语言编程开发中用好位操作符C语言编程...

    031.Python运算符总结_位操作符_优先级问题.mp4

    031.Python运算符总结_位操作符_优先级问题.mp4

    操作符学习案例

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

    VHDL操作符详细列表

    VHDL 操作符可以分为五大类:算术操作符、关系操作符、逻辑操作符、符号操作符和位操作符。 算术操作符 VHDL 语言提供了多种算术操作符,用于实现数字信号的运算。这些操作符包括: * `+` 加法操作符,用于将两个...

    MATLAB 中的常用操作符

    位操作符允许对二进制位进行操作,主要用于低级编程或数据操作。 - `bitand`:位与运算。 - `bitcmp`:位取反。 - `bitor`:位或运算。 - `bitxor`:位异或运算。 - `bitset`:设置特定位置的位。 - `bitget`:获取...

    C++操作符详解

    位操作符作用于二进制位级别,包括按位与(&)、按位或(|)、按位异或(^)、按位左移()、按位右移(&gt;&gt;)和无符号右移(&gt;&gt;&gt;)(仅在某些环境中支持)。这些操作符在处理底层数据或优化代码时非常有用。 六、增量和减量操作符 ...

    第5节-操作符详解.pdf

    位操作符用于直接操作数值的二进制位,包括: - **按位与 (`&`)**: 对应位置上的位都为1时结果才为1。 - **按位或 (`|`)**: 对应位置上至少有一个1时结果为1。 - **按位异或 (`^`)**: 对应位置上位不同为1,相同为0...

    C语言基础-操作符详解

    位操作符用于执行按位运算,包括按位与、按位或、按位异或等。 * &(按位与):将两个操作数的二进制位相与,如果两个操作数的对应二进制位都为1,则结果为1,否则为0 * |(按位或):将两个操作数的二进制位相或,...

    详解Java的按位操作符

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

    按位操作符

    按位操作符是编程语言中一组特殊的运算符,它们对整型变量的二进制表示进行操作,而不是对数值本身进行运算。这些操作符在处理二进制数据、位掩码或者进行高效的位级逻辑运算时非常有用。下面将详细阐述几种常见的按...

    详解Java的位操作符

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

    C语言位运算总结位操作基础基本的位操作符有与、或、异或、取反、左移、右移这6种,它们的运算规则如下.docx

    6. **高低位互换**:对于32位无符号整数,可以通过位操作交换高位和低位,例如`x = (x &gt;&gt; 16) | (x )`。 这些位运算技巧不仅提高了代码的效率,也使得代码更紧凑。在处理位模式、位字段或进行高效数据处理时,位...

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

    位操作符用于操作二进制位,如按位与(&)、按位或(|)、按位异或(^)、左移()、右移(&gt;&gt;)和无符号右移(&gt;&gt;&gt;). 这些操作符在处理二进制数据,如数组索引、颜色编码或者位标志时非常有用。 六、条件操作符(三元运算符) ...

    位操作的艺术:C语言中的位操作符全解析

    2. **接近硬件**:C语言提供了对内存地址和位操作的直接控制,使其非常适合硬件级编程。 3. **可移植性**:C语言编写的程序可以在不同的操作系统和硬件平台上编译和运行,具有很好的可移植性。 4. **丰富的库支持**...

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

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

    操作符运算符.pdf

    `),位操作符(`&`, `|`, `^`, `~`, `, `&gt;&gt;`),以及其他控制流程操作符(如`if`, `for`, `while`等)。这些操作符共同构成了C++丰富的语法,使得程序员能够编写出高效且复杂的代码。 理解并熟练运用这些操作符...

Global site tag (gtag.js) - Google Analytics