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. JPA简单的分页条件查询

    1,service层代码: @Override public QrCodeRecordPaging getPage(String projectId, Integer pageNumber, Inte ...

  2. BLE链路层空中包格式

    空中包格式 BLE链路层的空中包格式非常简单,它所有的空中包都遵循下图所示的格式: 有上图可见,BLE空中包由4个部分组成,他们分别是: 前导码(Preamble) 访问地址(Access Addre ...

  3. OO Unit3 总结

    OO Unit3 总结 OO课Unit3人际关系网JML应用技术回顾 BUAA.1823.邓新宇 2020/5/23 梳理JML语言的理论基础.应用工具链情况 方法规格 JML中,同一个方法在不同的条 ...

  4. MetaWeblog访问地址

    MetaWeblog访问地址 https://rpc.cnblogs.com/metaweblog/csnd

  5. hdu1722 切蛋糕

    题意:CakeTime Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Subm ...

  6. UVA10905孩子们的游戏

    题意:       给你n个数字,让你用这n个数组组成一个最大的数字并输出来. 思路:       这个题目看完第一反应就是直接按照字符串排序,然后轻轻松松写完,交上去直接wa了,为什么会wa呢?感觉 ...

  7. C#-DUP

    void jianting() { int port = 8888; UdpClient udpclient = new UdpClient(port); IPEndPoint ipendpoint ...

  8. node-多进程

    Node.js 是以单线程的模式运行的,但它使用的是事件驱动来处理并发,这样有助于我们在多核 cpu 的系统上创建多个子进程,从而提高性能. 每个子进程总是带有三个流对象: child.stdin, ...

  9. 【Git】2. Git常用命令详解、版本切换原理

    一.新增文件 1.设置用户签名 签名的作用就是为了区分不同的人,方便查看版本的时候知道操作的人是谁.首次安装好git之后必须设置一下签名,否则无法提交代码. 另外,这里设置的签名跟你登录到远程仓的账号 ...

  10. 基于MXNET框架的线性回归从零实现(房价预测为例)

    1.基于MXNET框架的线性回归从零实现例子 下面博客是基于MXNET框架下的线性回归从零实现,以一个简单的房屋价格预测作为例子来解释线性回归的基本要素.这个应用的目标是预测一栋房子的售出价格(元). ...