Go之关系运算符、逻辑运算符、进制数、杂项

一:关系运算符,和php的一致,略。

二:逻辑运算符,和已知的php一致,略。

三:进制数,已在php中学习,略。

四:Golang中不存在三元运算符。

五:源码,反码,补码。

对于有符号的而言:

①:二进制的最高位是符号,0表示正数,1表示负数。

②:正数的源码,反码,补码都一样。

  1=> [补码:0000 0001,反码:0000 0001,补码:0000 0001]

③:负数的反码=原码符号位不变,其他位置取反。

  -1=》[补码:1000 0001,反码:1111 1110]

④:负数的补码=反码+1

  -1=》[补码:1000 0001,反码:1111 1110,补码:1111 1111]

⑤:0的反码,补码都是0

⑥:在计算机运行的过程中,是以补码的方式进行运算。

六:位运算和移位运算

①:位运算是基于数字的二进制形势下的补码进行运算

  1)按位与&     :两位全为1,结果为1

  

  2)按位或|   :两位有一个为1结果为,否则为0

  

  备注:1)中,由于均为正数参考第五大点的第二小点,故补码不用转换几位源码,而负数需要转换。

  3)按位异或^ :两位,一个为0,一个为1,这为1,否则为0

  

②:移位运算

  1)<<符号位不变,低位补0

    var a := 1>>2 //a等于0

  2)>>符号位不变,低位溢出,并用符号位补溢出的高位

    var 1 := 1<<2 //a等于4

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

数据机器级表示

计算机中存储有符号数的时候是按照补码的形式存进去的。原码是数字的二进制表示,补码是原码取反1。正数的原反补相同。原码:最高位表示符号位,其余位表示数值位的编码称为原码。正数的符号位为0,负数的符号位为1。负数的反码:原码的符号位保持不变,数值位逐位取反,

java 二进制(原码 反码 补码),位运算,移位运算,约瑟夫问题

一.二进制,位运算,移位运算1.二进制对于原码,反码,补码而言,需要注意以下几点:(1).Java中没有无符号数,换言之,Java中的数都是有符号的;(2).二进制的最高位是符号位,0表示正数,1表示负数;(3).正数的原码,反码,补码都一样;(4).负数的反码它的原码符号位不变,其他位取反;(5).

java复习(1)

这几天开学,很多知识点还很生疏,这两天先把java基础复习一下,有段时间没有写博客了,今天就先谈谈进制转换吧。  1.二进制数的原码,补码和反码    1):对于正数的原码,补码和反码均是相同的,这里不讨论了。    2)接下来我们讨论负数的二进制的原码、反码和补码    负数二进制的原码:先