Golang的运算符-位运算符

                             作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

一.位运算符概述

  常见的位逻辑运算符:
    &:
      位与运算符,表示AND(表示所有条件都得匹配),运算规则为相同位都是1时结果才为1,不同则为0。举个例子:如"5 & 7",结果为5。
      计算过程为:我们用一个字节来表示一个数字,5转换成二进制为0000 ,7转换成二进制为0000 ,此时做位与运算,相同位都是1时结果才为1,最终得到结果二进制结果0000 ,使用十进制表示为5。     |:
      位或运算符,表示OR(表示有一个条件匹配即可),运算规则为相同位只要一个为1则为1。举个例子:如"5 | 7",结果为7。
      计算过程为:我们用一个字节来表示一个数字,5转换成二进制为0000 ,7转换成二进制为0000 ,此时做位或运算,相同位只要一个为1时结果才为1,最终得到结果0000 。使用十进制表示为7。     ^:
      位异或运算符,表示XOR,运算规则为相同位不同则为1,相同则为0。举个例子:如"5 ^ 7",结果为2。
      计算过程为:我们用一个字节来表示一个数字,5转换成二进制为0000 ,7转换成二进制为0000 ,此时做位异或运算,相同位不同则为1,相同则为0,最终得到结果0000 。使用十进制表示为2。
    &^:
      位清空运算符,表示AND NOT,运算规则为后数为0,则用前数对应位代替,后数为1则取0。举个例子:如"5 ^ 7",结果为0。
      计算过程为:我们用一个字节来表示一个数字,5转换成二进制为0000 ,7转换成二进制为0000 ,此时做位清空运算符,为后数为0,则用前数对应位代替,后数为1则取0,最终得到结果0000 0000。使用十进制表示为0。
  
  常见的位移运算符:
    <<:
      左移,表示将对应的二进制数字向左移动相应的位数,比如 << ,结果为40。
      计算过程为:我们用一个字节来表示一个数字,5转换成二进制为0000 ,将二进制数字向左位移3位得到0010 ,使用十进制表示为""。
    >>:
      右移,表示将对应的二进制数字向右移动相应的位数,比如 >> ,结果为1。
      计算过程为:我们用一个字节来表示一个数字,5转换成二进制为0000 ,将二进制数字向左位移3位得到0000 ,使用十进制表示为""。

二.位运算符实战案例

1>.位逻辑运算符案例

package main

import (
"fmt"
) func main() { a := //对应二进制为: 0000 0101
b := //对应二进制为: 0000 0111 fmt.Printf("变量a对应的二进制值是:[%b]\n", a)
fmt.Printf("变量b对应的二进制值是:[%b]\n", b) /*
&:
位与运算符,表示AND(表示所有条件都得匹配),运算规则为相同位都是1时结果才为1,不同则为0。举个例子:如"5 & 7",结果为5。 |:
位或运算符,表示OR(表示有一个条件匹配即可),运算规则为相同位只要一个为1则为1。举个例子:如"5 | 7",结果为7。   ^:
    位异或运算符,表示XOR,运算规则为相同位不同则为1,相同则为0。举个例子:如"5 ^ 7",结果为2。   &^:
    位清空运算符,表示AND NOT,运算规则为后数为0,则用前数对应位代替,后数为1则取0。举个例子:如"5 ^ 7",结果为0。
*/
fmt.Printf("a & b = [%d]\n", (a & b))
fmt.Printf("a | b = [%d]\n", (a | b))
fmt.Printf("a ^ b = [%d]\n", (a ^ b))
fmt.Printf("a &^ b = [%d]\n", (a &^ b)) }

2>.位移运算符

package main

import (
"fmt"
) func main() { a := //对应二进制为: 0000 0101 fmt.Printf("变量a对应的二进制值是:[%b]\n", a) /*
<<:
左移,表示将对应的二进制数字向左移动相应的位数,比如 5 << 3,结果为40。 >>:
右移,表示将对应的二进制数字向右移动相应的位数,比如 5 >> 3,结果为1。
*/ fmt.Printf("5 << 3 = [%d]\n", <<)
fmt.Printf("5 >> 3 = [%d]\n", >>) }

Golang的运算符-位运算符的更多相关文章

  1. PHP中的运算符---位运算符、递增递减运算符、三元运算符、字符串运算符、数组运算符、类型运算符、错误控制运算符

    1.位运算符 位运算符用来对整型数的指定位进行置位,如果被操作数是字符串,则对该字符串的ASCII码值进行操作. 运算类型 运算符 举例 结果 按位与 & $a & $b 将$a 与 ...

  2. javascript运算符——位运算符

    × 目录 [1]二进制 [2]非 [3]与[4]或[5]异或[6]左移[7]右移[8]>>>[9]应用 前面的话 位运算符是非常底层的运算,由于其很不直观,所以并不常用.但是,其速度 ...

  3. java入门---运算符&算术运算符&自增自减运算符&关系运算符&位运算符

        计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量.我们可以把运算符分成以下几组: 算术运算符 关系运算符 位运算符 逻辑运算符 赋值运算符 ...

  4. 【Python】2.16学习笔记 运算符,位运算符,if-else语句

    复合运算符 a *= b # a = a * b a += b # a = a + b a -= b # a = a - b ... 位运算符 对数字进行二进制运算 按位与 &,二进制位都为一 ...

  5. 【java从入门到精通】day-07-逻辑运算符-位运算符-条件运算符-扩展赋值运算符

    逻辑与(&&).或(||).非(!) 示例: package operator;​public class Demo05 {    public static void main(St ...

  6. 位运算符 & | ~ ^ << >>

    # ### 位运算符 & | ~ ^ << >> var1 = 19 var2 = 15 # & 按位与 """ res = va ...

  7. PHP 位运算符

    位运算符 位运算符是指对二进制位从低位到高位对齐后进行运算. 符号 作用 举例 个人理解 & 按位与 $m & $n 全1为1,否则为0 | 按位或 $m | $n 全0为0,有1为1 ...

  8. 换个语言学一下 Golang (5)——运算符

    运算符用于在程序运行时执行数学或逻辑运算. Go 语言内置的运算符有: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 其他运算符 接下来让我们来详细看看各个运算符的介绍. 算术运算符 下表 ...

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

    运算符: 算术运算符: + , - , * , / , % , ++ , -- 符合运算符: += , *= , /= , %= 条件运算符:  ? : 关系运算符: == , >= , < ...

随机推荐

  1. Java 模拟斗地主

    模拟斗地主 public class M1 { public static void main(String args[]) { DouDiZhu02(); } private static void ...

  2. 基本使用-ElasticSearch

    基本使用-ElasticSearch 说明:本篇文章主要是通过springboot整合es的基本使用基础,详细了解的可以看我上一篇文章:全文搜索-ElasticSearch 有朋友私信我上一篇没有环境 ...

  3. 通过命令行提交更新代码到gitlab上

    解决方法: 1.打开命令行的窗口,定位到项目所在的路径. 2.输入:git status,敲回车查看代码是否有更新,有更新的话会出现文件改变的文件名.(红色的) 3.输入:git commit -a ...

  4. macOS 微信多开插件

    macOS版本微信默认只能开一个,安装 WeChatTweak-macOS 插件即可实现多开. 效果图 安装步骤打开终端输入一下命令: git clone https://github.com/Sun ...

  5. 设计模式课程 设计模式精讲 11-2 装饰者模式coding

    1 代码演练 1.1 代码演练1(未使用装饰者模式) 1.2 代码演练2(使用装饰者模式) 1 代码演练 1.1 代码演练1(未使用装饰者模式) 需求: 大妈下班卖煎饼,加一个鸡蛋加一元,一个火腿两元 ...

  6. ffmpeg使用C语言sdk实现抽取视频中的视频数据

    主要使用函数 特征码:Start code 解码的一些视频参数,分辨率和帧率:SPS/PPS ffmpeg获取SPS/PPS:codec->extradata 实例 #include <s ...

  7. 为常用的块类型创建typedef

    本文概要: 1.块类型的语法结构 2.使用C语言中的“类型定义”的特性.使用typedef关键字用于给块类型起个别名 3.使用typedef好处之一是,重构块的类型签名时只需要改一处就行了,避免遗留b ...

  8. 吴裕雄--天生自然HADOOP操作实验学习笔记:Wor的Count程序的编写

    实验目的 理解mapreduce的工作原理 理解Partitioner的书写方法 理解GroupingComparator的书写方法 实验原理 我们已经学习了hadoop的大部分基础知识,剩下的就是利 ...

  9. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 表单:输入框(Input)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  10. netsh命令获取wifi历史连接密码

    首先[win+r]快捷键打开运行,输入cmd.或点击左下角win-运行-cmd 1.netsh wlan show profiles //列出所有的ap名称 2.netsh wlan show pro ...