【Go】运算符笔记

embedded/2025/3/22 20:56:32/

基本数学运算

Go 语言支持常见的 算术运算符,用于执行数学计算。

运算符说明
+加法
-减法
*乘法
/除法
%取余
++自增
--自减

整数运算只能得到整数部分

package mainimport ("fmt""math"
)func main() {go_math()
}func go_math() {x, y := 8, 5fmt.Printf("x = %d ,y = %d\n", x, y)fmt.Println("x/y除法运算:", x/y) //整数运算只能得到整数部分fmt.Println("float64(x)/float64(y)浮点运算:", float64(x)/float64(y))fmt.Println("x%y取余运算:", x%y)x++y--fmt.Println("x++自增运算:", x)fmt.Println("y--自减运算:", y)//除了上面的基本运算外,还有一个math库提供了许多数学函数和常量fmt.Println("除了上面的基本运算外,还有一个math库提供了许多数学函数和常量")fmt.Println("math.Pi=", math.Pi)fmt.Println("math.Pow幂运算", math.Pow(5, 3))fmt.Println("math.Abs取绝对值:", math.Abs(-100))
}

结果如下

x = 8 ,y = 5
x/y除法运算: 1
float64(x)/float64(y)浮点运算: 1.6
x%y取余运算: 3
x++自增运算: 9
y--自减运算: 4
除了上面的基本运算外,还有一个math库提供了许多数学函数和常量
math.Pi= 3.141592653589793
math.Pow幂运算 125
math.Abs取绝对值: 100

关系运算符

Go 语言中的 关系运算符 用于比较两个值,返回 truefalse
不能使用类似 5 < x < 15 的语法,需要拆分为 5 < x && x < 15

运算符说明示例(x=10结果
<小于x < 5false
>大于x > 5true
<=小于等于x <= 10true
>=大于等于x >= 15false
==等于x == 10true
!=不等于x != 10false

逻辑运算符

用于 多个条件组合判断,支持 短路求值

运算符说明示例(x=10, y=5结果
&&逻辑与(AND)x > 5 && y > 0true
|| 逻辑或(OR)x < 5 || y > 0true
!逻辑非(NOT)!(x > 5)false

短路求值机制:

  • &&(与):如果左侧为 false,右侧表达式不会执行
  • ||(或):如果左侧为 true,右侧表达式不会执行
if 5 > x && 15 > x { // 这里 x=10,5 > 10 为 false,短路后续判断fmt.Println(x)
}

位运算符

位运算符作用于整数的 二进制表示

运算符说明示例(5=0101, 6=0110结果
&按位与5 & 6 (0101 & 0110)0100 (4)
|按位或5 | 6 (0101 | 0110)0111 (7)
^按位异或5 ^ 6 (0101 ^ 0110)0011 (3)
<<左移5 << 2 (0101 -> 10100)20
>>右移5 >> 2 (0101 -> 0001)1
fmt.Println(5 | 6)  // 7
fmt.Println(5 & 6)  // 4
fmt.Println(5 ^ 6)  // 3
fmt.Println(5 << 2) // 20
fmt.Println(5 >> 2) // 1

赋值运算符

赋值运算符用于给变量赋值或进行 复合运算

运算符说明示例
=赋值x = 10
+=加后赋值x += 5 (等同于 x = x + 5)
-=减后赋值x -= 3 (等同于 x = x - 3)
*=乘后赋值x *= 2 (等同于 x = x * 2)
/=除后赋值x /= 2 (等同于 x = x / 2)

其他运算符

运算符说明
&取地址
*指针解引用
<-通道通信符号
var a int = 10
var p *int = &a  // 取 a 的地址
fmt.Println(*p)  // 输出 10(解引用)

http://www.ppmy.cn/embedded/174789.html

相关文章

虚拟机检测与反调试对抗技术

1. 虚拟机检测技术全解析 1.1 系统特征检测 常见检测点与绕过方案&#xff1a; 检测维度检测方法示例绕过技巧系统属性Build.PRODUCT.contains("sdk")Hook Build类属性返回值硬件信息检查/proc/cpuinfo虚拟化特征动态修改文件读取内容传感器数据加速度计/陀螺仪数…

MySQL以及MyBatis事务配置

在数据库管理中&#xff0c;事务是一个至关重要的概念。无论是金融交易、库存管理还是用户数据更新&#xff0c;事务都确保了数据的完整性和一致性。本文将详细介绍为什么需要事务、事务的核心概念、ACID特性、MySQL事务实践以及MyBatis事务配置的最佳实践。 一、事务的必要性…

网络故障排查指南:分治法与排除法结合的分层诊断手册

目录 一、排查方法论&#xff1a;分治法与排除法的结合 1. 分治法&#xff08;Divide and Conquer&#xff09; 2. 排除法&#xff08;Elimination&#xff09; 二、分层诊断实战手册 1. 物理层排查&#xff08;设备与线路&#xff09; 硬件检测三板斧 运维经验 2. 网络…

OpenCV vs MediaPipe:哪种方案更适合实时手势识别?

引言 手势识别是计算机视觉的重要应用&#xff0c;在人机交互&#xff08;HCI&#xff09;、增强现实&#xff08;AR&#xff09;、虚拟现实&#xff08;VR&#xff09;、智能家居控制、游戏等领域有广泛的应用。实现实时手势识别的技术方案主要有基于传统计算机视觉的方法&am…

京准电钟:NTP网络时间服务器让城市更智慧更精准

京准电钟&#xff1a;NTP网络时间服务器让城市更智慧更精准 京准电钟&#xff1a;NTP网络时间服务器让城市更智慧更精准 智慧城市网络时间服务器技术应用方案是实现城市各系统高效协同运行的关键基础设施&#xff0c;其核心在于通过高精度时间同步技术&#xff08;如NTP、GPS…

考研课程安排(自用)

文章目录 408数据结构&#xff08;王道&#xff09;计算机组成原理&#xff08;王道&#xff09;操作系统&#xff08;王道&#xff09;计算机网络&#xff08;湖科大版&#xff09; 408 数据结构&#xff08;王道&#xff09; 第一章绪论&#xff1a;8 22 26 17 31 15 一共大…

五模型对比!Transformer-GRU、Transformer、CNN-GRU、GRU、CNN五模型多变量时间序列预测

目录 预测效果基本介绍程序设计参考资料 预测效果 基本介绍 光伏功率预测&#xff01;五模型对比&#xff01;Transformer-GRU、Transformer、CNN-GRU、GRU、CNN五模型多变量时间序列预测(Matlab2023b 多输入单输出) 1.程序已经调试好&#xff0c;替换数据集后&#xff0c;仅运…

技术路线图ppt模板_流程图ppt图表_PPT架构图

技术路线图ppt模板 / 学术ppt模板 - 院士增选、国家科技奖、杰青、长江学者特聘教授、校企联聘教授、重点研发、优青、青长、青拔.. / 学术ppt案例 WordinPPT / 持续为双一流高校、科研院所、企业等提供PPT制作系统服务。 - 科学技术奖ppt&#xff1a;自然科学奖 | 技术…