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. MessageBox函数

    <Windows程序设计>(第五版)(美Charles Petzold著) https://docs.microsoft.com/zh-cn/windows/desktop/apiinde ...

  2. 34 java 文件过滤 FileFilter

    package com.da.tool.util; import org.apache.commons.io.filefilter.RegexFileFilter; import java.io.Fi ...

  3. Using webpack-dev-server

    官方讲解地址:https://webpack.js.org/guides/development/#using-webpack-dev-server The webpack-dev-server pr ...

  4. JS简单回弹原理

    /* *JS简单回弹原理 */ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "ht ...

  5. Java最新面试题

    本人免费整理了Java高级资料,涵盖了Java.Redis.MongoDB.MySQL.Zookeeper.Spring Cloud.Dubbo高并发分布式等教程,一共30G,需要自己领取.传送门:h ...

  6. MariaDB——日志文件

    数据库各类日志  查询日志:   记录每一条sql语句,建议不开启,因为如果访问量过大,会占用相当大的资源,影响数据库的性能.    vim /etc/my.cnf.d/server.cnf    g ...

  7. Java - Obejct

    关于Object类(Java 10)中的方法,根据其所涉及的知识点,分为如下4个部分: 基础 clone: protected Object clone() throws CloneNotSuppor ...

  8. docker幕布笔记

    幕布链接>>>>https://mubu.com/doc/l_KDT3S5w0

  9. springboot常见注解 2020-01-19

    1,@SpringBootApplication 是springboot的核心注解,用在启动类上,是由 @Configuration 加载spring,配置spring并启动spring容器; 启动容 ...

  10. HihoCoder 1246:王胖浩与环

    #1246 : 王胖浩与环 时间限制:6000ms 单点时限:1000ms 内存限制:256MB 描述 王胖浩有一个环,环上有n个正整数.他有特殊的能力,能将环切成k段,每段包含一个或者多个数字. 对 ...