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---程序运算的更多相关文章

  1. EntityFrameworkCore将数据库Timestamp类型在程序中转为long类型

    EntityFrameworkCore将数据库Timestamp类型在程序中转为long类型 EntityFrameworkCore Entity public class Entity { publ ...

  2. ASP.NET Web API 2 媒体类型格式化程序

    Ø  简介 在之前的ASP.NET Web API 2 消息处理管道文章中有提到,在 Web API 的生命周期中,还包含比较中要的一部分,就是媒体类型格式化程序,该程序主要用于处理 Web API ...

  3. moand的编程学形式:一个(高阶)类型包办程序的组织--类型关乎复合

    moand的编程学形式:一个(高阶)类型完成程序的组织. 将类型系统的转换与高阶函数进行了融合,相对于链式编程而言. 类型关乎复合 范畴论与箭头的复合有关.但是并非任意两个箭头都可以复合.一个箭头的目 ...

  4. byte数组转float实现与byte转换其它类型时进行&运算原理

    下面是将byte数组转换为float的实现 public static float getFloat(byte[] b) { int accum = 0; accum = accum|(b[0] &a ...

  5. C语言的结构体,枚举类型在程序中的作用

    http://www.xue63.com/xueask-1221-12212854.html 结构和枚举类型从程序实现的角度来说,是用更接近自然语言的方式来表达数据.比如说实现2维空间的点,你可以使用 ...

  6. Cats(4)- 叠加Free程序运算结果,Stacking monadic result types

    在前面的几篇关于Free编程的讨论示范中我们均使用了基础类型的运算结果.但在实际应用中因为需要考虑运算中出现异常的情况,常常会需要到更高阶复杂的运算结果类型如Option.Xor等.因为Monad无法 ...

  7. Numpy数值类型与数值运算-03

    什么是NumPy? NumPy是Python中科学计算的基本软件包.它是一个Python库,提供多维数组对象,各种派生对象(例如蒙版数组和矩阵) 以及各种例程,用于对数组进行快速操作,包括数学,逻辑, ...

  8. python基础之变量类型和数据运算

    一.变量的类型 程序中,为了更充分的利用内存空间以及更有效率的管理内存,变量是有不同的类型的. 怎样知道一个变量的类型呢? 在python中,只要定义了一个变量,而且它有数据,那么它的类型就已经确定了 ...

  9. x64类型的程序逆向思考

    x64类型比较习惯ida去分析,需要注意的是在x64程序中,有时会因为自己对寄存器不太熟悉导致自己分析过程混淆,下面坐下简单记录

随机推荐

  1. display:table-cell,inline-block 之间的缝隙

    1.dispaly:table-call ,会让你对元素设置的为百分百的宽度失效,设置正常数值宽高时, vertical-align: middle;可让内部元素垂直居中,但如果加上position: ...

  2. poj1182 and 携程预赛2第一题 带权并查集

    题意:       动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形.A吃B, B吃C,C吃A.  现有N个动物,以1-N编号.每个动物都是A,B,C中的一种,但是我们并不知道它到底 ...

  3. POJ1904 强联通(最大匹配可能性)

    题意:       有n个王子,n个公主,然后给你每个王子喜欢的公主,最后问你在不影响最大匹配的前提下,每个王子可以匹配那些公主. 思路:       是hdu4685的减弱版,之前研究过hdu468 ...

  4. hdu3746 KMP的next数组应用,求项链首尾项链循环

    题意:       给你一个项链,问你最少加多少个珠子能满足整个项链是一个循环的项链(首尾相连) 思路:      KMP的简单应用只要了解next数组的意义就好说了,下面总结下  next在循环方面 ...

  5. hdu4604 不错的子序列问题

    题意:       给你一个栈,里面有n个数,和一个双头队列(空的),每次从栈里拿出一个数据,有三种选择,可以选择丢弃这个数字,也可以放到队头或者队尾,最后问你这个队列你面的最长连续非下降序列的长度. ...

  6. LA3403天平难题(4个DFS)

    题意:      给出房间的宽度r和每个吊坠的重量wi,设计一个尽量宽但宽度不能超过房间宽度的天平,挂着所有挂坠,每个天平的一段要么挂这一个吊坠,要么挂着另一个天平,每个天平的总长度是1,细节我给出题 ...

  7. Portswigger web security academy:Clickjacking (UI redressing)

    Portswigger web security academy:Clickjacking (UI redressing) 目录 Portswigger web security academy:Cl ...

  8. layui处理表单/按钮进行多次提交

    在一个项目中,我们最频繁的操作是CRUD,所以一定有涉及到按钮的操作.比如:确认保存,确认编辑,确认删除等等.所以,为了避免表单进行多次提交就显得特别地重要. 代码实现 知识点 $(':button' ...

  9. PHP 父类方法如何访问子类属性

    设计知识点 类与对象->后期静态绑定 出现的问题 A 类为父类 里面有一个方法为调用当前类的 $name 属性 当 B 类继承了 A类时 但是输出仍然是 A (父类) 的 属性? <?ph ...

  10. 记一次 .NET 某医院HIS系统 CPU爆高分析

    一:背景 1. 讲故事 前几天有位朋友加 wx 抱怨他的程序在高峰期总是莫名其妙的cpu爆高,求助如何分析? 和这位朋友沟通下来,据说这问题困扰了他们几年,还请了微软的工程师过来解决,无疾而终,应该还 ...