位运算符 & | ^ >> << 简介

这几天看算法变成位运算由于不常用一下有点蒙,应该有人跟我一样吧.
这次我简单收集了几个说明了一下,希望大家都补充

所谓的位运算都是对二进制的操作
&,如果是两个大家很熟悉, "&&"是"与",一个也是
不过是两个二进制码的"与" , 两个都是"1" 才会得"1"
00001001
&
00000101
=
00000001

其他的也都是  "||"是"或", 两个只要有一个是"1" 就会得"1"
00001001
|
00000101
=
00001101
下边这个就不常用了,"^" 两个都是"1"得"0",由一个是"1"就得"1"
00001001
^
00000101
=
00001100

>>  <<  是 位移
数字转换成二进制后向左向右移动多少位
例:
14>>2=3
00001100(14)
>>2
00000011(3)
如果移没了,就舍去不管了
3>>1=1
3>>2=0
00000011(3)
>>1
00000001(1)
"<<"就是往前移
3<<2 = 14
00000011(3)
<<2
00001100(14)

位运算符 & | ^ >> << 简介

时间: 2024-08-05 22:08:38

位运算符 & | ^ >> << 简介的相关文章

Java位运算符

位运算符 在Java中所有的数据都是以二进制数据的形式进行运算的,即如果是一个int型变量,要采用位运算时则必须将其变为二进制数据:每一 位二进制进行与.或.异或操作的结果如下: package com.test; public class Test { public static void main(String[] args) { int x = 3; int y = 6; System.out.println(x & y); System.out.println(x | y); Syste

Java的算数运算符、关系运算符、逻辑运算符、位运算符

Java的运算符,分为四类:                           算数运算符.关系运算符.逻辑运算符.位运算符.                           算数运算符:+  -  *  /  %  ++  --                           关系运算符:==  !=  >  >=  <  <=                           逻辑运算符:&&  ||  !  ^  &  |        

java注释 命名 数据类型 基本类型转换 位运算符 逻辑运算符 三目运算符

一.java注释 1.单行注释  //注释内容 2.多行注释 /*注释内容*/ 3.文档注释(可用javadoc工具生成api文档,不过我还没试过)/**文档注释*/,文档注释可以在使用的时候看见注释. 文档注释常用的标记 @auther作者 @version版本 @deprecated 不推荐使用 @param 本放的参数 @return 返回值 @throws异常,同@exception 二.java的命名 1.项目名 字母全部小写 2.包名 全部小写 3.类名 首字母大写加驼峰 4.方法名

Java的位运算符详解实例

Java的位运算符详解实例——与(&).非(~).或(|).异或(^).右移(>>).左移(<<).无符号右移(>>>) 位运算符主要针对二进制, 它包括了:“与”.“非”.“或”.“异或”."右移"."左移"."无符号右移". 从表面上看似乎有点像逻辑运算符, 但逻辑运算符是针对两个关系运算符来进行逻辑运算, 而位运算符主要针对两个二进制数的位进行逻辑运算. 下面详细介绍每个位运算符. 1.与运

Java的位运算符笔记

Java的位运算符有:&与.|或.^异或.~非.<<算术左移.>>算术右移.>>>逻辑右移 1. &(与) 全是1-->1 全是0-->0 有1有0-->0 例:000 111 010 101 000 111 101 101 ---------------------------- 000 111 000 101 1 int i = 1; //00000000000000000000000000000001 2 int j = 2

黑马程序员---C基础6【#include指令】【模块化编程】【计算机的进制】【原码、反码、补码】【位运算符】

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- [#include指令] 1.文件包含命令的格式: 1)#include “”双引号是包含用户自己书写定义的文件(可以是头文件,也可以是普通的文件)#include是预处理指令,不是一个语句,不需要加封号 2)#include<>   包含一个系统(编译器自带)的头文件 2.文件包含的实质: 把指定文件内容插入该命令行位置取代该命令行, include不一定非要写在第一行: 3.includ

Java功底篇系列-03-一些位运算符你会如何理解?

话题一:异或 先看一段代码吧: 这段代码是用来实现a,b交换的. 异或是位运算符,0^1为1,其他情况都是0,这是一个加法不进位的功能! 这有什么用呢? 其实通过上面交换的例子,我们已经明白A^B^A将得到B,也就是可以实现数据还原的功能! 话题二:%与& 如果有一堆数据,我们想将这些数据通过HASH的方式,放入到桶中. 我们可以将桶进行编号,比如0号,1号,...N号桶. 给我们一个数据,我们要完成这个数据和桶的序号的映射转化关系,这样放入和查找就可以了. 由于对于任何一个非负数A,进行A%B

C语言的各种位运算符的操作简述

运算符: 算术运算符: + , - , * , / , % , ++ , -- 符合运算符: += , *= , /= , %= 条件运算符:  ? : 关系运算符: == , >= , <= , != , > , < 逻辑运算符: && , || , ! 赋值运算符: = 其他运算符: * , & , -> , . 位运算符: 1 > 按位与 &同时为一则为一 否则为零 3 & 5结果为 1(先将两个数化为二进制在进行计算) 3

类型转换、运算符、位运算符【以及原码、反码、补码】

1.类型转换 php中的‘+’与js有区别,php中+只是算术运算符[更偏向转化为数字].js更偏向转化为字符串 php本身的自动转换类型便符合大多数对类型的处理.[也有强制转换的情形出现] [注意转换关系:字符串转换成数字类型,开头的那部分字符串能够转化为数字(还要判断浮点型和整型)] 2.转换成布尔型[实现流程控制的关键] 以下值为false: (1)布尔值为false (2)整型值为0 (3)浮点型为0.0 (4)空字符串[字符串'0'(相当于是字符串做数组时是一个空字符串),区别,注意‘

&#39;&lt;&lt;&#39; &#39;|&#39; &#39;&gt;&gt;&#39; 等位运算符 课本祥解

a<<1   相当于a*2     a>>1    相当于a/2   a<<|1   相当于a*2+1 一些算法用得到. '<<' '|' '>>' 等位运算符 课本祥解