GO语言基础知识(三.运算符)

一.运算符:

1.算术运算符:

算术运算符,也就是我们数学中的算术运算,包括加,减,乘,除,余

运算符描述
+
-
*
/
%

1)java中的算术运算符:

package org.example;

public class Main {
    public static void main(String[] args) {
        int num1 = 10, num2 = 12, num3 = 13, num4 = 14;
        //加法
        int sum = num1 + num2;
        System.out.println(sum);
        //减法
        int sub = num3 - num1;
        System.out.println(sub);
        //乘法
        int mul = num4 * num1;
        System.out.println(mul);
        //除法
        int division = num4 / num1;
        double division2 = (double) num4 / num1;
        System.out.println(division);
        System.out.println(division2);
        //求余数
        int complementation = num4 % num1;
        System.out.println(complementation);
    }
}

2)golang中的算术运算符:

package main

import "fmt"

func main() {
	var (
		num1 = 10
		num2 = 12
		num3 = 13
		num4 = 14
	)
	//加法
	sum := num1 + num2
	fmt.Println(sum)

	//减法
	sub := num3 - num1
	fmt.Println(sub)

	//乘法
	mul := num1 * num4
	fmt.Println(mul)

	// 除法
	division := num4 / num1
	fmt.Println(division)
	division2 := float64(num4) / float64(num1)
	fmt.Println(division2)

	// 求余
	complementation := num4 % num1
	fmt.Println(complementation)
}

2.关系运算符:

关系运算符是用于比较两个值之间关系的运算符。(关系运算符一般用于if判断中)

运算符
描述
==
检查两个值是否相等,如果相等返回 True 否则返回 False
!=
检查两个值是否不相等,如果不相等返回 True 否则返回 False
>
检查左边值是否大于右边值,如果是返回 True 否则返回 False
>=
检查左边值是否大于等于右边值,如果是返回 True 否则返回 False
<
检查左边值是否小于右边值,如果是返回 True 否则返回 False
<=
检查左边值是否小于等于右边值,如果是返回 True 否则返回 False

1)java中的关系运算符:

package org.example;

public class Main {
    public static void main(String[] args) {
        int n1 = 9, n2 = 8;
        System.out.println(n1 == n2);
        System.out.println(n1 != n2);
        System.out.println(n1 > n2);
        System.out.println(n1 >= n2);
        System.out.println(n1 < n2);
        System.out.println(n1 <= n2);
        boolean flag = n1 > n2;
        System.out.println("flag=" + flag);
    }
}

2)golang中的关系运算符:

package main

import "fmt"

func main() {
	var n1 int = 9
	var n2 int = 8
	fmt.Println(n1 == n2) //false
	fmt.Println(n1 != n2) //true
	fmt.Println(n1 > n2)  //true
	fmt.Println(n1 >= n2) //true
	fmt.Println(n1 < n2)  //flase
	fmt.Println(n1 <= n2) //flase
	flag := n1 > n2
	fmt.Println("flag=", flag)
}

3.逻辑运算符:

逻辑运算符是用于组合和操作逻辑值(布尔值)的运算符

运算符描述
&&
逻辑 AND 运算符。 如果两边的操作数都是 True ,则为 True ,否则为 False
||
逻辑 OR 运算符。 如果两边的操作数有一个 True ,则为 True ,否则为 False
逻辑 NOT 运算符。 如果条件为 True ,则为 False ,否则为 True

1)java中的逻辑运算符:

package org.example;

public class Main {
    public static void main(String[] args) {
        int n1 = 7, n2 = 8, n3 = 7;
        //逻辑且
        if (n1 > n2 && n1 >=n3) {
            System.out.println("n1 > n2 且 n1 >= n3");
        } else {
            System.out.println("不满足条件");
        }
        //逻辑或
        if (n1 > n2 || n1 >= n3) {
            System.out.println("n1 > n2 或 n1 >= n3");
        } else {
            System.out.println("不满足条件");
        }
        //逻辑非
        if (!(n1 > n2)) { //相当于 n2 >= n1
            System.out.println("!(n1 > n2)");
        } else {
            System.out.println("不满足条件");
        }
    }
}

2)golang中的逻辑运算符:

package main

import "fmt"

func main() {
	var n1 int = 7
	var n2 int = 8
	var n3 int = 7
	//逻辑且
	if n1 > n2 && n1 >= n3 {
		fmt.Println("n1 > n2 且 n1 >= n3")
	} else {
		fmt.Println("不满足条件")
	}
	//逻辑或
	if n1 > n2 || n1 >= n3 {
		fmt.Println("n1 > n2 或 n1 >= n3")
	} else {
		fmt.Println("不满足条件")
	}
	//逻辑非
	if !(n1 > n2) { //相当于 n2 >= n1
		fmt.Println("!(n1 > n2)")
	} else {
		fmt.Println("不满足条件")
	}
}

4.赋值运算符:

赋值运算是将一个值或表达式赋给一个变量或存储位置的操作

运算符描述
=
简单的赋值运算符,将一个表达式的值赋给一个左值
+=
相加后再赋值
-=
相减后再赋值
*=
相乘后再赋值
/=
相除后再赋值
%=
求余后再赋值

1)java中的赋值运算符:

package org.example;

public class Main {
    public static void main(String[] args) {
        int n1 = 1, n2 = 2, n3 = 3, n4 = 4, n5 = 5;
        n1 += 5;// n1 = n1 + 5;
        n2 -= 1;// n2 = n2 -1;
        n3 *= 3;// n3 = n3 * 3;
        n4 /= 2;// n4 = n4 / 2;
        n5 %= 2;// n5 = n5 % 2;
        System.out.println(n1);
        System.out.println(n2);
        System.out.println(n3);
        System.out.println(n4);
        System.out.println(n5);
    }
}

2)golang中赋值位运算符:

package main

import "fmt"

func main() {
	var (
		n1 = 1
		n2 = 2
		n3 = 3
		n4 = 4
		n5 = 5
	)
	n1 += 5 // n1 = n1 + 5;
	n2 -= 1 // n2 = n2 -1;
	n3 *= 3 // n3 = n3 * 3;
	n4 /= 2 // n4 = n4 / 2;
	n5 %= 2 // n5 = n5 % 2;
	fmt.Println(n1, n2, n3, n4, n5)
}

5.位运算符(了解):

位运算符对整数在内存中的二进制位进行操作。了解即可,不常用,但是看到要明白什么意思才行。

运算符描述
&
参与运算的两数各对应的二进位相与。 (两位均为 1 才为 1
|
参与运算的两数各对应的二进位相或。 (两位有一个为 1 就为 1
^
参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为 1
(两位不一样则为 1
<<
左移 n 位就是乘以 2 n 次方。 “a<<b” 是把 a 的各二进位全部左移 b 位,高位
丢弃,低位补 0
>>
右移 n 位就是除以 2 n 次方。 “a>>b” 是把 a 的各二进位全部右移 b 位。

1)java中的位运算符:

package org.example;

public class Main {
    public static void main(String[] args) {
        int a = 5;
        // 十进制转二进制
        String binaryStringA = Integer.toBinaryString(a);
        System.out.println(binaryStringA);

        int b = 2;
        String binaryStringB = Integer.toBinaryString(b);
        System.out.println(binaryStringB);
        /*
            101
             10
            a & b两者为1才为1
            所以a & b = 0
         */
        System.out.println("a&b=" + (a & b));
        /*
            101
             10
            a | b 其中一个为1则为1
            所以 a | b = 111 ===> 十进制位 7
         */
        System.out.println("a|b==" + (a | b));
        /*
            101
             10
            a ^ b 两者不同则为1
            a ^ b = 111 ===>  十进制为7
         */
        System.out.println("a^b=" + (a ^ b));
        /*
            101
            a >> b 右移2位 101 ===> 1 十进制为1
         */
        System.out.println("5>>2=" + (a >> b));
        /*
            101
            a << b 左移2位 10100 ===> 十进制为20
         */
        System.out.println("5<<2=" + (a << b));
        /*
            101
            5 << 1 左移1位 1010 ===> 10
         */
        System.out.println("5<<1=" + (5 << 1));
        /*
            101
            5 >> 1 右移1位 10 ===> 2
         */
        System.out.println("5>>1=" + (5 >> 1));
        /*
            111
            7 >> 2 右移2位 1 ===> 1
         */
        System.out.println("7>>2=" + (7 >> 2));
    }
}

2)golang中的位运算符:

package main

import "fmt"

func main() {
	/* & 两位均为 1 才为 1
	   | 两位有一个为 1 就为 1
	   ^ 相异或 两位不一样则为 1
	   << 左移 n 位就是乘以 2 的 n 次方。 “a<<b”是把 a 的各二进位全部左移 b 位,
	   高位丢弃,低位补 0。
	   >> 右移 n 位就是除以 2 的 n 次方。
	*/
	var a int = 5              // 101
	var b int = 2              // 010
	fmt.Println("a&b=", a&b)   // 000 值 0
	fmt.Println("a|b=", a|b)   // 111 值 7
	fmt.Println("a^b=", a^b)   // 111 值 7
	fmt.Println("5>>2=", a>>b) // 5 右移 2 位 1
	fmt.Println("5<<2=", a<<b) // 5 左移 2 位 10100
	fmt.Println("5<<1=", 5<<1) // 1010
	fmt.Println("5>>1=", 5>>1) // 10
	fmt.Println("7>>2=", 7>>2) // 1
}

  • 10
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值