当前位置: 首页 > news >正文

宁波网站制作计划投资公司注册

宁波网站制作计划,投资公司注册,关键词排名优化易下拉系统,android 网站模板目录 一、概述 1、算数运算符 2、关系运算符 3、逻辑运算符 4、赋值运算符 5、运算符优先级 6、位运算符 7、其他运算符 二、进制 1、进制转换 1、其他进制转十进制 2、十进制转其他进制 3、二进制转其他进制 4、其他进制转二进制 5、二进制在运算中的说明 三、…

目录

一、概述

1、算数运算符

2、关系运算符

3、逻辑运算符

4、赋值运算符

5、运算符优先级

6、位运算符

7、其他运算符

二、进制

1、进制转换

1、其他进制转十进制

2、十进制转其他进制

3、二进制转其他进制

4、其他进制转二进制

5、二进制在运算中的说明

三、原码、补码、反码


一、概述

运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等

  1. 算数运算符
  2. 赋值运算符
  3. 比较运算符/关系运算符
  4. 逻辑运算符
  5. 位运算符
  6. 其他运算符

1、算数运算符

算数运算符是对数值类型的变量进行运算的,比如:加减乘除。在Go程序中使用的非常多。

  1. +:正号
  2. -:负号
  3. +:加
  4. -:减
  5. *:乘
  6. /:除
  7. %:取模(取余)
  8. ++:自增
  9. --:自减
  10. +:字符串相加

注:

  1. 对于除号"/",它的整数除和小数除是有区别的,整数之间做除法时,只保留整数部分而舍弃小数部分。例:x :=19/5,结果是 3
  2. 当对一个数取模时,可以等价 a%b=a-a/b*b
  3. Golang的自增和自减只能当作一个独立语言使用,不能这样使用 b:=a++ 或者 b:=a--
  4. Golang的++和--只能写在变量后面,不能写在变量的前面,即:只有a++ a--没有++a --a
  5. Golang的设计者去掉c/java中的自增自减的容易混淆的写法,让Golang更加简洁,统一。

2、关系运算符

  1. 关系运算符的结果都是bool型,也就是要么是true,要么是false

  2. 关系表达式经常用在if结构的条件中或循环结构的条件中

  3. '==':相等于

  4. '!=':不等于

  5. '<':小于

  6. '>':大于

  7. '<=':小于等于

  8. '>=':大于等于

package main
import ("fmt"
)func main() {x :=19/5fmt.Println(x)var a = 5var b = 9fmt.Println("a%b=",a%b)fmt.Println("a-a/b*b=",a-a/b*b)var n1 int = 5var n2 int = 9fmt.Println(n1==n2)fmt.Println(n1!=n2)fmt.Println(n1<n2)fmt.Println(n1>n2)fmt.Println(n1<=n2)fmt.Println(n1>=n2)
}

3、逻辑运算符

用于连接多个条件(一般来讲就是关系表达式),最终的结果也是一个bool值。

  1. &&:逻辑与运算符。如果两边的操作数都是True,则为True,否则,为False。
  2. ||:逻辑与运算符。如果两边的操作数有一个True,则为True,否则,为False。
  3. !:逻辑非运算符。如果条件为True,则逻辑为False,否则为True。
  • &&也叫短路与,如果第一个条件为False,则第二个条件不会判断,最终结果为false
  • ||也叫短路或,如果第一个条件为true,则第二个条件不会判断,最终结果为true

4、赋值运算符

赋值运算符就是将某个运算后的值,赋给指定的变量。

  1. =:将一个表达式的值赋给左值,C=A+B
  2. +=:相加后再赋值,C+=A等于C=C+A
  3. -=:相减后再赋值,C-=A等于C=C-A
  4. =:相乘后再赋值,C=A等于C=C*A
  5. /=:相除后再赋值,C/=A等于C=C/A
  6. %=:求余后再赋值,C%=A等于C=C%A
  7. <<=:左移后再赋值,C<<=2等于C=C<<2
  8. ">>=":右移后再赋值,C>>=2等于C=C>>2
  9. &=:按位与后再赋值,C&=2等于C=C&2
  10. ^=:按位异或后再赋值,C^=2等于C=C^2
  11. |=:按位或后再赋值,C|=2等于C=C|2
  • 运算顺序从右往左
  • 赋值运算符的左边,只能是变量,右边可以是变量、表达式、常量值
面试题:
有两个变量,a和b,要求将其进行交换,但是不允许使用中间变量,最终打印结果。
package main
import ("fmt"
)
func main() {var a = 3var b = 5a=a+bb=a-ba=a-bfmt.Println(a,b)
}

5、运算符优先级

运算符有不同的优先级,所谓优先级就是表达式运算中的运算顺序。如下,上面优先于下面

只有单目运算符、赋值运算符是从右向左运算的。

分类描述关联性
后缀()[]->.++ --左到右
单目+ - ! ~ (type)* & sizeof右到左
乘法* / %左到右
加法+ -左到右
移位<< >>左到右
关系< <= > >=左到右
相等== !=左到右
按位与&左到右
按位异或^左到右
按位或|左到右
逻辑与&&左到右
逻辑或||左到右
赋值运算符=: += -= *= /= %= <<= >>= &= ^= |=右到左
逗号,左到右

6、位运算符

  1. &:按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。运算规则是:同时为1,结果为1,否则为0.
  2. |:按位或运算符"|"是双目运算符。其功能是参与运算的两数各对应的二进位相或。运算规则是:有一个为1,结果为1,否则为0.
  3. ^:按位异或运算符"^"是双目运算符。其功能是参与运算的两数各对应的二进位相异或。运算规则是:当二进位不同时,结果为1,否则为0.
  4. <<:左移运算符"<<"是双目运算符。其功能把"<<"左边的运算数的各二进制位全部左移若干位,高位丢失,低位补0.左移n位就是乘以2的n次方。
  5. ">>":右移运算符">>"是双目运算符。其功能把">>"左边的运算数的各二进制位全部右移若干位.右移n位就是除以2的n次方。
package main
import ("fmt"
)
func main() {var a int = 1 >> 2var b int = -1 >> 2var c int = 1 << 2var d int = -1 << 2fmt.Println("a=",a)fmt.Println("b=",b)fmt.Println("c=",c)fmt.Println("d=",d)fmt.Println(2&3)fmt.Println(2|3)fmt.Println(13&7)fmt.Println(5|4)fmt.Println(-3^3)
}

7、其他运算符

  1. &:返回变量存储地址,&a 将给出变量a的实际地址
  2. *:指针变量, *a 是一个指针变量

Go语言明确不支持三元运算符

Golang的设计理念:一种事情有且只有一种方法完成

二、进制

对于整数,有四种表示方式:

  1. 二进制:0,1,满2进1.
  2. 十进制:0-9,满10进1.
  3. 八进制:0-7,满8进1,以数字0开头表示。
  4. 十六进制:0-9及A-F,满16进1,以0x或0X开头表示。此处A-F不区分大小写。如:0x21AF+1=0x21B0
package main
import ("fmt"
)
func main() {var i int = 5fmt.Printf("二进制输出i=%b\n",i)var j int = 011fmt.Println("八进制j=",j)var k int = 0x11fmt.Println("16进制k=",k)
}

1、进制转换

1、其他进制转十进制

1.1、二进制转十进制

规则:从最低位开始(右边的),将每个位上的数提取出来,乘以2的(位数-1)次方,然后求和。

1.2、八进制转十进制

规则:从最低位开始(右边的),将每个位上的数提取出来,乘以8的(位数-1)次方,然后求和。

1.3、十六进制转十进制

规则:从最低位开始(右边的),将每个位上的数提取出来,乘以16的(位数-1)次方,然后求和。

2、十进制转其他进制

2.1、十进制转二进制

规则:将该数不断除以2,直到商为0为止,然后将每步得到的余数倒过来,就是对应的二进制。

2.2、十进制转八进制

规则:将该数不断除以8,直到商为0为止,然后将每步得到的余数倒过来,就是对应的八进制。

2.3、十进制转十六进制

规则:将该数不断除以16,直到商为0为止,然后将每步得到的余数倒过来,就是对应的十六进制。

3、二进制转其他进制

3.1、二进制转八进制

规则:将二进制数每三位一组(从低位开始组合),转成对应的八进制数即可。

将二进制:11010101转成八进制。11010101=0325

3.2、二进制转十六进制

规则:将二进制数每四位一组(从低位开始组合),转成对应的十六进制数即可。

将二进制:11010101转成十六进制。11010101=D5

4、其他进制转二进制

4.1、八进制转二进制

规则:将八进制数每1位,转成对应的一个3位的二进制数即可。

将0237转成二进制. 0237=10011111

4.2、十六进制转二进制

规则:将十六进制数每1位,转成对应的一个4位的二进制数即可。

将0x237转成二进制. 0x237=1000110111

5、二进制在运算中的说明

二进制是逢2进位的进位制,0、1是基本算符。

现代的电子计算机技术全部采用的是二进制,因为它只使用0、1两个数字符号,非常简单方便,易于用电子方式实现。计算机内部处理的信息,都是采用二进制数来表示的。二进制(Binary)数用0和1两个数字及其组合来表示任何数。进位规则是"逢2进1",数字1在不同的位上代表不同的值,按从右至左的次序,这个值以二倍递增。

三、原码、补码、反码

对于有符号的而言:

  1. 二进制的最高位是符号位:0表示正数,1表示负数。
  2. 正数的原码,反码,补码都一样。
  3. 负数的反码=它的原码符号位不变,其他位取反(0-->1,1-->0)。
  4. 负数的补码=它的反码+1。
  5. 0的反码,补码都是0。
  6. 在计算机运算的时候,都是以补码的方式来运算的
1===>原码:[0000 0001]反码:[0000 0001]补码:[0000 0001]
-1==>原码:[1000 0001]反码:[1111 1110]补码:[1111 1111]
按位与&:两位全为1,结果为1,否则为0
按位或|:两位有一个为1,结果为1,否则为0
按位异或:两位一个为0,一个为1,结果为1,否则为0
计算:
2&3=2
2的补码:[0000 0010] 
3的补码:[0000 0011]
2&3的补码:[0000 0010]=2
2|3=3
2的补码:[0000 0010] 
3的补码:[0000 0011]
2|3的补码:[0000 0011]=3
2^3=1
2的补码:[0000 0010] 
3的补码:[0000 0011]
2^3的补码:[0000 0001]=1
-2^2=-4
-2的原码:[1000 0010]反码:[1111 1101]补码:[1111 1110][1111 1110]
2的补码:[0000 0010]
-2^2的补码:[1111 1100]反码:[1111 1011]原码:[1000 0100]=-4
>>、<<右移和左移运算规则:
右移运算符>>:低位溢出,符号位不变,并用符号位补溢出的高位
左移运算符<<:符号位不变,低位补0
1>>2=0
1的补码:[0000 0001] 右移[0000 0000]=0
1<<2=4
1的补码:[0000 0001] 左移[0000 0100]=4

干我们这行,啥时候懈怠,就意味着长进的停止,长进的停止就意味着被淘汰,只能往前冲,直到凤凰涅槃的一天!

http://www.yayakq.cn/news/660350/

相关文章:

  • 北京最好的网站建设公司网站权重多少4
  • 长春网站建设技术外包成都微信小程序定制开发公司
  • 开源免费企业网站系统上海模板建站哪家好
  • 网站开发登录要做哪些验证湖南建筑工程集团
  • 网站建设实录音乐网站点击率原因
  • 怎么在网站后台挂马方法网站目录
  • 自己做的网站怎么样把里面的内容下载下来网站建设的职位类别
  • js模板网站wordpress右侧居中
  • 网站建设经济可行性报告广告设计公司简介文案
  • 影楼化妆师工资一般多少南通seo公司网站
  • 仿第四城地方门户网站模板学设计哪个职业学校比较好
  • 厦门企业网站制作四川建设招标网站首页
  • 新中建设公司招聘网站网络策划是做什么的工作
  • 哪个网站做推广好中国十大最著名室内设计师
  • 青羊区城乡建设网站c 做网站设计
  • 响应式网站应该怎么做怎么做外围网站代理
  • 胶州网站建设南京时事重大新闻
  • 源码网站免费如何用源代码提取网页的图片
  • 滨湖网站建设网络服务费要交印花税吗
  • 网站建设模板怎么设计上海互联网公司销售
  • 山东网站营销seo哪家好40万用户自助建站
  • 福建省建设厅网站信用评分现在建设网站赚钱吗
  • 萍乡企业做网站永久免费网页版linux
  • 网站建设多少钱宋柯适合个人网站的名称
  • 设计师分享网站淘宝网站建设百度百科
  • 天河网站建设外包嘉兴网站建设网站
  • 上海网站网站开发5000
  • 我想弄个自己的卖货网站怎样做设计公司起名及寓意
  • 外贸外链网站网站性能容量的收集与分析怎么做
  • 瑞昌市环保局网站建设公司系统软件