取反是什么意思_1取反是多少

取反是什么意思_1取反是多少很多编程语言使用~作为一元按位取反(NOT)操作符,Go重用^XOR操作符来按位取反://错误的取反操作funcmain(){fmt.Println(~2)//bitwisecomplementoperatoris^}//正确示例funcmain(){varduint8=2fmt.Printf(“%08b\n”,d)//00000010fmt.Printf(“%08b\n”

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

很多编程语言使用 ~ 作为一元按位取反(NOT)操作符,Go 重用 ^ XOR 操作符来按位取反:

// 错误的取反操作
func main() {
    fmt.Println(~2)        // bitwise complement operator is ^
}


// 正确示例
func main() {
    var d uint8 = 2
    fmt.Printf("%08b\n", d)        // 00000010
    fmt.Printf("%08b\n", ^d)    // 11111101
}

同时 ^ 也是按位异或(XOR)操作符。

一个操作符能重用两次,是因为一元的 NOT 操作 NOT 0x02,与二元的 XOR 操作 0x22 XOR 0xff 是一致的。

Go 也有特殊的操作符 AND NOT &^ 操作符,不同位才取1。

func main() {
    var a uint8 = 0x82
    var b uint8 = 0x02
    fmt.Printf("%08b [A]\n", a)
    fmt.Printf("%08b [B]\n", b)

    fmt.Printf("%08b (NOT B)\n", ^b)
    fmt.Printf("%08b ^ %08b = %08b [B XOR 0xff]\n", b, 0xff, b^0xff)

    fmt.Printf("%08b ^ %08b = %08b [A XOR B]\n", a, b, a^b)
    fmt.Printf("%08b & %08b = %08b [A AND B]\n", a, b, a&b)
    fmt.Printf("%08b &^%08b = %08b [A 'AND NOT' B]\n", a, b, a&^b)
    fmt.Printf("%08b&(^%08b)= %08b [A AND (NOT B)]\n", a, b, a&(^b))
}
    10000010 [A]
    00000010 [B]
    11111101 (NOT B)
    00000010 ^ 11111111 = 11111101 [B XOR 0xff]
    10000010 ^ 00000010 = 10000000 [A XOR B]
    10000010 & 00000010 = 00000010 [A AND B]
    10000010 &^00000010 = 10000000 [A 'AND NOT' B]
    10000010&(^00000010)= 10000000 [A AND (NOT B)]
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/170476.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 图解转置卷积原理[通俗易懂]

    图解转置卷积原理[通俗易懂]声明:本文大部分搬运自【机器学习】详解转置卷积(TransposeConvolution)感谢博主花与人间事同,本人只是在博主原创文章上做补充以及添加一些自己的理解。1转置卷积的背景通常,对图像进行多次卷积运算后,特征图的尺寸会不断缩小。而对于某些特定任务(如图像分割和图像生成等),需将图像恢复到原尺寸再操作。这个将图像由小分辨率映射到大分辨率的尺寸恢复操作,称为上采样(Upsample),如下图所示:上采样方法有很多,详见【图像处理】详解最近邻插值、线性插值、双线性插值、双三次插值

  • kali linux暴力破解wifi密码

    前期需要将kali安装好,并且有无线网卡(注意kali支持芯片为3070和1887L的网卡)打开kali,打开终端,使用命令ifconfig查看网卡信息,若有wlan0表示网卡连接成功![在这里插入图片描述](https://img-blog.csdnimg.cn/20200530193911516.png开启网卡监听模式airmon-ngstartwlan0iwconfig,网卡名为wlan0mon,说明开启成功airodump-ngwlan0mon扫描WiFi,按

  • thread dump是什么意思_stack trace of thread

    thread dump是什么意思_stack trace of thread以下报错是什么原因呢?2021-07-1616:30:1507-1616:30:15.8251181213216IHwAudioRecordImpl:sendStateChangedIntent,state=12021-07-1616:30:1507-1616:30:15.8261181213216IHwAudioRecordImpl:sendStateChangedIntent,state=12021-07-1616:30:1507-1616:3.

  • vue中上传文件_vue下载文件乱码

    vue中上传文件_vue下载文件乱码vue文件上传下载报文件损坏

  • Mybatis中Like 的使用方式以及一些注意点

    做一个积极的人编码、改bug、提升自己我有一个乐园,面向编程,春暖花开!模糊查询在项目中还是经常使用的,本文就简单整理Mybatis中使用Like进行模糊查询的几种写法以及一些常见的问题。使用Springboot简单配置一下Mybatis,然后进行说明。Springboot集成Mybatis这里就不做介绍了。初始数据方式一在Mybatis中的第一种写法: <!–有sq…

  • mt4电脑版安装教程_mt4中文版下载正版官网

    mt4电脑版安装教程_mt4中文版下载正版官网MT4软件版本比较多,电脑版,手机版(安卓和IOS),以及MAC版都有。下载和安装电脑版和其它软件的流程是一样的。首先第一步是要获取到软件包,在http://mt4.m1.xinclo.xyz/就行。下载完毕,然后是解压,全自动安装过程,按照指示进行安装。安装成功后,在登录自己的MT4账户即可。接下来就是设置一些自己要用到的指标。…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号