Go基础结构与类型05---程序运算
package main import (
"fmt"
"math"
) func main() {
/*加减乘除,求余*/
fmt.Println("5+3=", 5+3)
fmt.Println("5-3=", 5-3)
fmt.Println("5*3=", 5*3)
fmt.Println("5/3=", 5/3)
fmt.Println("5%3=", 5%3) /*乘方和开方*/
fmt.Println("5^3=", math.Pow(5,3))
fmt.Println("125开3次方=", math.Pow(125.0, 1.0/3)) /*
四舍五入
负数的四舍五入原则:先对绝对值四舍五入,再加负号
*/
fmt.Println("3.49的四舍五入", math.Round(3.49))
fmt.Println("-3.49的四舍五入", math.Round(-3.49))
fmt.Println("3.51的四舍五入", math.Round(3.51))
fmt.Println("-3.51的四舍五入", math.Round(-3.51)) /*纯舍,纯入*/
fmt.Println("3.99的四舍五入", math.Floor(3.99))
fmt.Println("3.01的四舍五入", math.Ceil(3.01)) /*绝对值*/
fmt.Println("-3.14的绝对值", math.Abs(-3.14)) /*三角函数:参数必须是弧度而不是角度*/
fmt.Println("30°的正弦=", math.Sin((30.0/180)*math.Pi))
fmt.Println("30°的余弦=", math.Cos((30.0/180)*math.Pi))
fmt.Println("30°的正切=", math.Tan((30.0/180)*math.Pi))
fmt.Println("30°的余切=", 1.0/math.Tan((30.0/180)*math.Pi)) /*反三角函数*/
fmt.Println("正弦为0.5的角度是", math.Asin(0.5)) //0.5235987755982989=30度的弧度表示 }
比较运算和逻辑运算
/*比较运算
比较运算符:>,<,==,!=,>=,<=
比较运算的结果是布尔值:true或false*/ /*
逻辑运算
逻辑与:两者都为真,结果才为真
逻辑或:两者只要有一个为真,结果就位真
逻辑非:非真为假,非假为真
*/
func main() {
a1 := (1+1==2)//true
a0 := (1+1!=2)//false
b1 := (1+1>=2)//true
b0 := (1+1<2)//false
fmt.Println(a1,a0,b1,b0) /*逻辑与*/
fmt.Println(a1 && b1)//true
fmt.Println(a1 && b0)//false
fmt.Println(a0 && b1)//false
fmt.Println(a0 && b0)//false /*逻辑或*/
fmt.Println(a1 || b1)//true
fmt.Println(a1 || b0)//true
fmt.Println(a0 || b1)//true
fmt.Println(a0 || b0)//false /*逻辑非*/
fmt.Println(!a1)//false
fmt.Println(!a0)//true
fmt.Println(!b1)//false
fmt.Println(!b0)//true
}
输出结果:
true false true false
true
false
false
false
true
true
true
false
false
true
false
true
位运算
/*位运算
& 按位与 两位都为1,结果才为1
| 按位或 只要有一位为1,结果就位1
^ 按位异或 两位不相同,结果就为1,否则就为0
>>
<<
*/
func main() {
//a := 23
//b := 34
var a uint8 = 23
var b uint8 = 34
fmt.Println(a & b)//2
fmt.Println(a | b)//55
fmt.Println(a ^ b)//53 /*移位运算*/
fmt.Println(a << 2)//92
fmt.Println(a >> 2)//5 /*左移的溢出
a为无符号8位整型,向左侧溢出后,最高位为数据位*/
fmt.Println(a << 4)//112
fmt.Println(a << 5)//1110,0000无符号为224 /*左移的溢出
a为有符号8位整型,向左侧溢出后,最高位为符号位---要考虑正负数问题
最高位为0,非负数
最高位为1,负数的反码,-1在取反得到绝对值*/
var c int8 = 23
fmt.Println(c << 5)//1110,0000有符号为-32
}
输出:
2
55
53
92
5
112
224
-32
Go基础结构与类型05---程序运算的更多相关文章
- EntityFrameworkCore将数据库Timestamp类型在程序中转为long类型
EntityFrameworkCore将数据库Timestamp类型在程序中转为long类型 EntityFrameworkCore Entity public class Entity { publ ...
- ASP.NET Web API 2 媒体类型格式化程序
Ø 简介 在之前的ASP.NET Web API 2 消息处理管道文章中有提到,在 Web API 的生命周期中,还包含比较中要的一部分,就是媒体类型格式化程序,该程序主要用于处理 Web API ...
- moand的编程学形式:一个(高阶)类型包办程序的组织--类型关乎复合
moand的编程学形式:一个(高阶)类型完成程序的组织. 将类型系统的转换与高阶函数进行了融合,相对于链式编程而言. 类型关乎复合 范畴论与箭头的复合有关.但是并非任意两个箭头都可以复合.一个箭头的目 ...
- byte数组转float实现与byte转换其它类型时进行&运算原理
下面是将byte数组转换为float的实现 public static float getFloat(byte[] b) { int accum = 0; accum = accum|(b[0] &a ...
- C语言的结构体,枚举类型在程序中的作用
http://www.xue63.com/xueask-1221-12212854.html 结构和枚举类型从程序实现的角度来说,是用更接近自然语言的方式来表达数据.比如说实现2维空间的点,你可以使用 ...
- Cats(4)- 叠加Free程序运算结果,Stacking monadic result types
在前面的几篇关于Free编程的讨论示范中我们均使用了基础类型的运算结果.但在实际应用中因为需要考虑运算中出现异常的情况,常常会需要到更高阶复杂的运算结果类型如Option.Xor等.因为Monad无法 ...
- Numpy数值类型与数值运算-03
什么是NumPy? NumPy是Python中科学计算的基本软件包.它是一个Python库,提供多维数组对象,各种派生对象(例如蒙版数组和矩阵) 以及各种例程,用于对数组进行快速操作,包括数学,逻辑, ...
- python基础之变量类型和数据运算
一.变量的类型 程序中,为了更充分的利用内存空间以及更有效率的管理内存,变量是有不同的类型的. 怎样知道一个变量的类型呢? 在python中,只要定义了一个变量,而且它有数据,那么它的类型就已经确定了 ...
- x64类型的程序逆向思考
x64类型比较习惯ida去分析,需要注意的是在x64程序中,有时会因为自己对寄存器不太熟悉导致自己分析过程混淆,下面坐下简单记录
随机推荐
- hdu4740 不错的简单搜索
题意: 给你一个n*n的图,给你驴和老虎的初始坐标和方向,已知他们的速度相同,他们走动的时候都是走直线,如果不能走,驴往右拐,老虎往左拐,如果拐了一次还走不了就原地不动,问他们的最早相遇位置 ...
- Python中sys模块的使用
目录 sys模块 sys.argv() sys.exit(0) sys.path sys.modules sys模块负责程序与python解释器的交互,提供了一系列的函数和变量,用于操控python的 ...
- YII框架中的srbac权限管理模块的安全与使用(版本是1.1.20)
0x01 前言 srbac的原理: YII框架的srbac模块是一个专门管理权限的一个模块,那它是怎么管理权限的呢.我们知道YII框架的网页显示是由控制器实现的,控制器继承父类CController和 ...
- CVE-2013-3346:十全九美的 Adobe Reader ToolButton UAF 漏洞
0x01 "Epic Turla" 网络间谍行动 在 2014 年 8 月,被誉为 "世界十大最危险的网络攻击行动" 之一的 "Epic Turla& ...
- c/c++ 中访问2维数组的方式
指针是c的灵魂,这个真是不容置疑,太灵活了,太随意了, 当然,如果理解了,用得好,比弱类型语言的var 用的还舒服, 用的不好,那就是程序的灾难,哈哈,不多说了,访问二维或多维数组有如下几种方式,下面 ...
- <JVM中篇:字节码与类的加载篇>04-再谈类的加载器
笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机) 同步更新:https://gitee.com/vectorx/NOTE_JVM https://codechina.cs ...
- 使用docker-compose.yml快速搭建Linux/Mac开发/生产环境
传送门 点击进入Github,https://github.com/ovim/dockerfiles 简单介绍 Dockerfiles 搭建基础公用环境包,方便使用,支持业务不断的提升而需要一些软件的 ...
- ppt技巧一四步法调整PPT
声明:本文所有截图来源于网易云课堂--<和秋叶一起学PPT>,仅作为个人复习之用,特此声明! 常见配色方案 可以从模板或公司logo取色 图片的选择要高清.风格.主题一致
- Unittest框架之测试套件:TestSuite
前言 使用了unittest.main()方法执行当前模块里的测试用例. 除此之外,Unittest还可以通过测试套件构造测试用例集,再执行测试用例 将测试用例添加至TestSuite(测试套件) 方 ...
- 痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU启动那些事(6.B)- FlexSPI NOR连接方式大全(RT500)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RT500的FlexSPI NOR启动的连接方式. 这个i.MXRT FlexSPI NOR启动连接方式系列文章,痞子衡 ...