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. 华为云WeLink 颠覆你对智能办公的想象

    导读 华为云发现,与企业数字化关系最紧密的就是办公数字化,所以将WeLink放到华为云上可以作为一个抓手让企业更直观地感受到云端数字化,而且华为云的合作伙伴,也可以与WeLink建立联接,从而进整个企 ...

  2. 关于Android file.createNewFile() 方法出现的问题总结(转)

    原文:http://blog.csdn.net/wjdarwin/article/details/7108606 今天在编写向SDcard中,创建文件夹并向其中保存文件的过程中出现个一系列的问题 在此 ...

  3. error C2664: “FILE *fopen(const char *,const char *)”: 无法将参数 1 从“LPCTSTR”转换为“const char *”

    遇到这个问题,请打开本项目的Properties(属性)-------> Configuration Properties(配置属性)-------->General(常规)------- ...

  4. Codeforces 1304B. Longest Palindrome

    根据数据范围,暴力可以解决,对每一个串,找与其互为回文的串,或者判断自身是否为回文串,然后两两将互为回文的串排列在头尾,中间放且只能最多放一个自身为回文串的串,因为题目说每个串都是不同的 #inclu ...

  5. 「IOI2014」Wall 砖墙

    题目描述 给定一个初始元素为 \(0\) 的数列,以及 \(K\) 次操作: 将区间 \([L, R]\) 中的元素对 \(h\) 取 \(max\) 将区间 \([L, R]\) 中的元素对 \(h ...

  6. docker源码安装

    概述:Docker目前分为两个版本:EE版本(企业版本).CE版本(社区版本).推荐的内核版本是3.8或者更高.必须是64位的操作系统. 安装Docker的先决条件: 运行64位CPU架构的计算机(x ...

  7. 从数据库中查询所有表及所有字段的SQL语句

    从数据库中查询所有表及所有字段的SQL语句 由于一个小项目的需要,近日完成一个从数据库中查询所有表及所有字段的方法,其实用两条SQL语句就可以完成. Sql Server版:列出当前DB中所有表:se ...

  8. 如何使用Python输出一个[斐波那契数列]

    如何使用Python输出一个[斐波那契数列]Fibonacci 斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonac ...

  9. 记录要做的事情,把sql字符串替换写成工具网页。

    之前使用的是java的本地控制台进行sql占位符的替换. 现在我想换个方式,想到了两种. 第一种是使用java +jsp进行替换,前台输出. 第二种是把java代码改成js代码,反正也不用访问数据库. ...

  10. Linux命令:history命令历史的管理及用法

    bash可以保存的过去曾经执行过的命令.当某个用户登录到shell中,会读取该用户家目录中的~/.bash_history文件,并将历史命令列表保存到内存中.当用户退出当前shell时,会将内存中的历 ...