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

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


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)]
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • Pycharm安装包超时:ReadTimeoutError

    Pycharm安装包超时:ReadTimeoutErrorPycharm会自动安装pip、setuptools、wheel,安装numpy等包时,由于国外服务器,导致下载延时,无法安装,可使用使用pip.exe解决。Win+R,Enter后打开cmd,在你的python工程下venv-Scripts下,pip.exe右键,ShowinExplorer,打开所在文件夹,将pip.exe拖入cmd,执行查看所有可用命令、查看当前工程已安装的包、安装包…

    2022年5月17日
  • C语言位运算符_C语言左移和右移的区别

    C语言位运算符_C语言左移和右移的区别如果你想了解以下位运算符的话我想你来对了地方&^|~<<>>首先明确位运算符都是在二进制位上运算的先讲比较简单的<<>>(有些人可能认为这个最难以理解包括我)后来我陡然一时想到了十进制左移“<<”右移“>>”十进制10左移三位就是乘以10的3次方=1000010右…

    2022年10月5日
  • 软件设计师考点汇总(室内设计师个人总结)

    文章目录分值分布考点总结计算机组成与体系结构数据表示进制转换编码浮点数运算CPU结构运算器控制器Flynn分类法CISC:复杂指令集;RISC:精简指令集流水线流水线相关概念存储系统Cache主存内存磁盘总线系统可靠性差错控制-校验码操作系统进程管理死锁及银行家算法存储管理页面置换算法文件管理索引文件目录结构位示图磁盘管理I/O设备管理虚设备与SPOOLING技术微内核操作系统数据库数据库模式数据库设计过程E-R模型关系代数规范化理论函数依赖键范式模式分解并发控制数据库安全备份恢复数据仓库与数据挖掘反规范化

    2022年4月17日
  • python做微信回复机器人_微信自动回复机器人免费版

    python做微信回复机器人_微信自动回复机器人免费版还记得“人人”火的时候,有个小黄鸡很有名,可以不知疲倦地和你聊上一整天,而且各种搞怪金句频出,让人欲罢不能。如今人人已经成为“人人直播-高颜值品质直播平台”了(往事不堪回首啊),微信却火地一塌糊涂,那么如何在微信上做一个有趣的小黄鸡功能呢?还好我们有Python。Lifeisshort,sousepython.不得不承认Python真的是一种神奇的语言,常常带给人很多惊喜。不到30行代码便可

    2022年10月1日
  • 今儿下午疲惫极了_形容疲惫至极的诗句

    今儿下午疲惫极了_形容疲惫至极的诗句回家的公车上人也特别的多,春天来了,气温渐温,街上的颜色也丰富起来,我一路的走,一路的观望,看着一张张的笑脸,我也一路的想,想我爱的人和爱我的人,不觉得走神了。下车没两步,我摔了一交,结结实实的。手中的电脑包抛了老远,我一下子倒在了路边,脑子嗡响了一下,暂时的记忆就没了。大约有那么两三秒,也许是我摔倒的动静太大了,感觉周围的目光都在朝我这边看,一时间的尴尬,没顾得上身上的土,站起来就往住的方向猛走

    2022年9月18日
  • kafka安装完整步骤_Kafka教程

    kafka安装完整步骤_Kafka教程<!DOCTYPEhtml><html><head><title>Kafka入门教程之一:安装</title><metacharset=’utf-8′><linkhref=’https://cdn.maxiang.io/res-min/themes/marxico.css’rel=’st…

    2022年9月19日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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