Golang学习笔记(六)运算符及源码、反码、补码

实在是没有什么好写的,写几个函数来体现几个运算符。

新建一个go file,添加三个变量

var a = 21.0
var b = 5.0
var c float64

建一个函数来体现算术运算符

func Arithmetic() {
	c = a + b
	fmt.Printf("第1行 - c 的值为 %f\n", c)
	c = a - b
	fmt.Printf("第2行 - c 的值为 %f\n", c)
	c = a * b
	fmt.Printf("第3行 - c 的值为 %f\n", c)
	c = a / b
	fmt.Printf("第4行 - c 的值为 %f\n", c)

	fmt.Printf("第5行 - c 的值为 %d\n", int(a)%int(b))
	a++
	fmt.Printf("第6行 - c 的值为 %f\n", a)
	a--
	fmt.Printf("第7行 - c 的值为 %f\n", a)
}

第五行是为了求余数,所以将两个float转成了int

 

再建一个函数来体现关系运算符

func Relational() {
	if (a == b) {
		fmt.Printf("第1行   a等于b \n")
	} else {
		fmt.Printf("第1行   a不等于b \n")
	}
	if (a < b) {
		fmt.Printf("第2行   a小于b \n")
	} else {
		fmt.Printf("第2行   a不小于b \n")
	}
	if (a > b) {
		fmt.Printf("第1行   a大于b \n")
	} else {
		fmt.Printf("第1行   a不大于b \n")
	}
}

 

建一个函数来体现位移运算符

func Bitwise() {
	fmt.Printf("%d\n", 252&63)
	fmt.Printf("%d\n", 178|94)
	fmt.Printf("%d\n", 20^5)
	fmt.Printf("%d\n", 3<<4)
	fmt.Printf("%d\n", 11>>2)
}

 

建一个函数来体现逻辑运算符

func Logical() {
    a := true
    b := false
    if ( a && b ){
    	fmt.Printf("第1行 - 条件为 true\n")
	}
	if ( a || b ){
		fmt.Printf("第2行 - 条件为 true\n")
	}
	if ( a && b ){
		fmt.Printf("第3行 - 条件为 true\n")
	} else {
		fmt.Printf("第3行 - 条件为 false\n")
	}
	if (!( a && b )){
		fmt.Printf("第4行 - 条件为 true\n")
	}
}

 

建一个函数来体现赋值运算符

func Assignment(){
	c = a
	fmt.Printf("第1行 = 运算符实例,c值为 = %f\n",c)
	c += a
	fmt.Printf("第2行 += 运算符实例,c值为 = %f\n",c)
	c -= a
	fmt.Printf("第3行 -= 运算符实例,c值为 = %f\n",c)
	c *= a
	fmt.Printf("第4行 *= 运算符实例,c值为 = %f\n",c)
	c /= a
	fmt.Printf("第5行 /= 运算符实例,c值为 = %f\n",c)

	//位移赋值
	d := 200
	d <<= 2
	fmt.Printf("第6行 <<= 运算符实例,d值为 = %d\n",d)
	d >>= 2
	fmt.Printf("第7行 >>= 运算符实例,d值为 = %d\n",d)
	d &= 2
	fmt.Printf("第8行 &= 运算符实例,d值为 = %d\n",d)
	d |= 2
	fmt.Printf("第9行 |= 运算符实例,d值为 = %d\n",d)
	d ^= 2
	fmt.Printf("第10行 ^= 运算符实例,d值为 = %d\n",d)
}

2019年9月9日,补充源码、反码、补码内容:

每个数据都有一个源码,2的2进制源码为【0000 0010】,-2的2进制源码为【1000 0010】。

每个正数及0的二进制源码、反码、补码都是一样的,俗称三码合一。

而负数的反码为源码的反向,如-2的反码为【1111 1101】,

负数的补码为反码末位加1,如-2的补码为【1111 1110】。

计算机对负数的计算,实际是使用的补码。

那么计算机计算 -2^2的时候,先是将-2的补码【1111 1110】异或2的源码【0000 0010】,因为得到的数值第一位是1,则为负数,需要讲【1111 1100】先变为反码【1111 1011】,然后将反码转为源码【1000 0100】,得到数值-4。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值