按位运算符探讨

  之前一直没搞懂这个怎么计算的,主要也因为之前没怎么用到过这个,但现在想把它搞懂,所以索性一次性搞懂为妙,以后就不用再纠结了哈。

按位运算符就是把数字看作二进制来进行计算的,并且再把计算出来的二进制给它转换成十进制,也就是最终的结果了。

比如:

   7&9

这个是按位与,先不讨论与不与的,总之它现在会把7和9转换成二进制,接下来我们将7和9转换成2进制,这里我用python。

如果你看不懂这段代码没有关系,因为这里的重点不是讲python,而是按位运算符,这里我们可以看到7的二进制为111,而9的二进制为1001。明显可以看出7和9的二进制长度不一样,如果长度不一样的话,短的那个前面会自动补0。结果就成了这样:

7:0111

9:1001

前面说了所谓的按位运算符就是比较两个数的二进制,那么怎么比较呢,是这样的,如果是按位与那么就比较两个数是不是都为1如果是就是1否则为0,看下面。

比如第一个7:0 ,第一个9:1那么它们就为0,只要其中有一个是0那么它就是零,当然这是对于按位于来说的。

整体比较如下:

7:0 1 1 1

9:1 0 0 1

结果:0 0 0 1

那么结果二进制就成了0001了,那么二进制0001再转换成十进制就是1,自然7&9结果就是1。

我们可以用下面的工具来帮我们转换。

其他的东西都不要问我,我只说按位运算符,因为其他我啥也不懂,至于转换来转换去,我也是百度了一下的,但我的目的达到了,因为我不是来学进制转换的,有一句话说的很好,不忘初心,方得始终。这也是一种学习方式,以前我学习老爱纠结这些,所以一直就学不好,因为有些根本就不是你现在该考虑的,你要明确自己学这个干嘛。

那么按位或,按位非,按位取反,自然也是一个道理,不过是比较的时候换种花样罢了,再拿按位或来演示一下。

按位或

5|6

转换2进制:

5:101

6:110

只要有1就是1

结果:111 这是二进制 再转一下就是7.

ok了,这是一次很愉快的过程,目的达到了哈,按位运算可以告一段落了。

时间: 2024-09-29 10:15:40

按位运算符探讨的相关文章

位运算符的使用

这篇文章我们一起来看看Objective-C位运算符.Objective-C语言中有各种各样的运算符可处理数字中的特定位,如下表所示:  符号  运算  &  按位与  |  按位或  ^  按位异或  ~  一次求反  <<  向左移位  >>  向右移位 表中列出的所有运算符,除一次求反运算符(~)外,都是二元运算符,因此需要两个运算数.位运算符可处理任何类型的整型值,但不能处理浮点值. 1.按位运算符 对两个值执行与运算时,会逐位比较两个值的二进制表示.第一个值与第二

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