go语言操作符 ^ 和 &^

Python016

go语言操作符 ^ 和 &^,第1张

很多语言都是采用 ~ 作为按位取反运算符,Go 里面采用的是 ^ 。

如果作为二元运算符,^ 表示按位异或,即:对应位相同为 0,相异为 1。

操作符 &^,按位置零,例如:z = x &^ y,表示如果 y 中的 bit 位为 1,则 z 对应 bit 位为 0,否则 z 对应 bit 位等于 x 中相应的 bit 位的值。

对于有符号的整数来说,是按照补码进行取反操作的(快速计算方法:对数 a 取反,结果为 -(a+1) ),对于无符号整数来说就是按位取反

计算过程

以3为例  3在内存中补码为 0*** 0011

取反            1*** 1100

-1操作          1*** 1011

除符号位取反    1*** 0100 结果为-4

-------------------------------------------

以9为例 9在内存中补码为 0*** 1001

取反            1*** 0110

-1操作          1*** 0101

除符号位取反    1*** 1010 结果为-10

-------------------------------------------

以-5为例 -5在内存中为的补码为 1*** 1011

为什么呢

-5源码          1*** 0101

除符号取反      1*** 1010

+1操作          1*** 1011

-------------------------------------------

那么-5取反怎么算

补码 1***1011取反为 0***0100

因为符号位为0,所以是正数了,正数的补码反码源码都是一个,所以是4

===================================

再看-1

-1源码          1*** 0001

除符号取反      1*** 1110

+1操作          1*** 1111

补码 1*** 1111 取反为 0*** 0000

因为符号位为0,所以是正数了,正数的补码反码源码都是一个,所以是0

go语言取反输出的例子看这里

英语里不用冒号的,基本都用逗号和破折号,或者直接用从句的连词,或者用非谓语来解决。

在英文中的用法

⒈ 冒号用于对后面内容的介绍或解释,如 This is her plan: go shopping.

⒉ 冒号用于名单之前,特别是一个竖排的名单。

We transferred three employees to new branches:

· Tony Wang to New York City

· Mike Jackson to Tokyo

· Mark Foster to Paris

当名单横排的时候,冒号要用在一个完整的句子之后,如 We need seven people: three students,three engineers,and a professor.

⒊ 冒号用于一个正式的引用之前。如 The professor said: “It was horrible.”

⒋ 冒号也可用于商业或正式信函的称谓后面,如 Dear Mr. Lee:(美国英语中,信件或演说词的称呼语之后用冒号,而在英国英语中多用逗号。)

⒌ 冒号用于数字时间的表示,如16:45 或4:45 p.m.

⒍ 冒号用于主标题和副标题之间,如 Web Directory: World and Non-U.S. Economic Data

扩展资料

使用注意

⑴ 运用冒号时要注意其提示范围。冒号提示的内容的末尾用句号。如果一个句号前的内容不全是冒号提示的,则这个冒号用得不正确。例如:

这种惊人的事实证明:人如果老想着钱, 看不到敌人的腐蚀进攻,就会走入歧途,可见这些事实是可以作为活教材的。

(句中冒号只提示到了"歧途",不包括后边,所以用错了。应把“歧途”后面的逗号改为句号。)

⑵ 没有特别提示的必要就不要用冒号。如:

他表示:一定要来参加会议。(冒号应该删去)

比赛的结果出人预料:老年队竟打败了青年队。(冒号应该改为逗号)

⑶ 在句子内部,不能用冒号。如:

老师说了一声:“下课!”就走了。(句中不能用冒号,应删去。)

⑷ “某某说”、“某某想”等后边常用冒号。但有时不想强调提示语,或不直接引述别人的话,则不用冒号而用逗号。如果“某某说”是在所有引文的后边,“说”后用句号。

⑸一般说来,一句话里只适合用一个冒号。如果一个冒号范围里又用冒号,就形成了冒号的套用。应设法避免套用冒号。如:

心理学研究表明:影响儿童心理发展有三个重要因素:遗传、环境和教育。(前一个冒号应改为逗号;或调整语序,变更为“心理学研究表明:遗传、环境和教育是影响儿童心理发展的三个重要因素。”)

参考资料来源:百度百科-冒号