不同语言操作符的优先级

简介: 不同语言操作符的优先级

看到标题,可能会心生疑惑: 这么基础且重要的操作,不同语言不应该是一致的吗?

并不一定,比如对于右移运算和加法运算,Go就与其他多数语言表现得不一致:


Go:

package main
import "fmt"
func main() {
    fmt.Println(1+2>>1) // 2
}

微信截图_20230802070255.png

Java:

import java.io.*;
class test  
{
  public static void main (String[] args) throws java.lang.Exception
  {
    System.out.println(1+2>>1); // 1
  }
}

微信截图_20230802070308.png

C/C++:

#include <stdio.h>
int main(void) { 
    int a = 1+2>>1;
  printf("%d\n",a); // 1
  return 0;
}

微信截图_20230802070413.png

nodejs:

console.log(1+2>>1); // 1

微信截图_20230802070452.png

python:

#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
if True :
  aaa=1+2>>1 
  print(aaa) // 1
  print(sys.version) //3.8.6 (default, Sep 24 2020, 21:45:12)  [GCC 8.3.0]

微信截图_20230802070528.png

php:

<?php
$aa=1+2>>1;
echo 'hello '.'1+2>>1运算结果为:'.$aa."\n"; // hello 1+2>>1运算结果为:1
echo date('Y-m-d H:i:s',time())."\n"; // 20xx-08-28 14:33:23
echo "PHP版本:".phpversion();  // PHP版本:7.4.10
?>

微信截图_20230802070604.png

目录
相关文章
|
6月前
|
C语言 C++
操作符的属性:优先级、结合性(缺表达式求值)
操作符的属性:优先级、结合性(缺表达式求值)
43 0
|
6月前
|
C++
c++运算符的优先级
c++运算符的优先级
92 0
|
6月前
|
Python
运算符的优先级
运算符的优先级
89 2
|
6月前
|
Java
Java程序设计基础—表达式及运算符的优先级
Java程序设计基础—表达式及运算符的优先级
|
6月前
|
JavaScript 前端开发 Java
运算符分为哪几类? 哪些运算符常用作判断?简述运算符的优先级?
运算符分为哪几类? 哪些运算符常用作判断?简述运算符的优先级?
|
存储 Java
Java运算符及运算符的优先级【超详细】
Java运算符及运算符的优先级【超详细】
1403 0
|
6月前
|
Go
go语言中的运算符和表达式与对应的优先级
go语言中的运算符和表达式与对应的优先级
99 0
|
编译器 C++
代码规范:运算符的优先级
【规则 4-5-1】不可在 for 循环体内修改循环变量,防止 for 循环失去控制。 【建议 4-5-1】建议 for 语句的循环控制变量的取值采用“半开半闭区间”写法。
53 1
|
编译器 C语言
操作符的属性,C语言中运算符的优先性和结合性,常见的问题表达式
操作符的属性,C语言中运算符的优先性和结合性,常见的问题表达式