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程序中,有时会因为自己对寄存器不太熟悉导致自己分析过程混淆,下面坐下简单记录
随机推荐
- 03 Django web服务开发 - URL路由
Django中的APP -Django中的一个APP就是一个应用的意思 -项目可以包含多个APP(多个应用) -一个项目对应一个网站(生活服务网站) 一个APP队形网站的一个应用(二手交易,家政服务) ...
- hdu3746 KMP的next数组应用,求项链首尾项链循环
题意: 给你一个项链,问你最少加多少个珠子能满足整个项链是一个循环的项链(首尾相连) 思路: KMP的简单应用只要了解next数组的意义就好说了,下面总结下 next在循环方面 ...
- poj 2472
题意: 给你一个无向图,然后每条边的权值就是不被抓的概率,有个货要从1逃到n,问你他的最安全概率是多少? 思路: 水题,直接跑就行了,一开始自己想多了,还转换了一下log,后来发 ...
- DVWA之Brute Force(暴力破解)
目录 Low Medium High Impossible 暴力破解是指使用穷举法,举出所有的可能的结果,然后逐一验证是否正确! Low 源代码: <?php if( isset( $_GET[ ...
- 【python】Leetcode每日一题-位1的个数
[python]Leetcode每日一题-位1的个数 [题目描述] 编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数(也被称为汉明重量). 示例1 ...
- 三、postman持久化及批量运行
一.设置环境变量 环境变量的引用为{{变量名}},运行脚本之前切记要在右上角选择对应脚本设置的环境变量后点击保存 二.设置全局变量 三.脚本导入导出及分享 1.导入脚本 2.导出脚本 3.分享脚本 四 ...
- Spring Cloud Alibaba(8)---Feign服务调用
Feign服务调用 有关Spring Cloud Alibaba之前写过五篇文章,这篇也是在上面项目的基础上进行开发. Spring Cloud Alibaba(1)---入门篇 Spring Clo ...
- 日期格式化时注解@DateTimeFormat无效的问题分析
作者:汤圆 个人博客:javalover.cc 背景 有时候我们在写接口时,需要把前台传来的日期String类型转为Date类型 这时我们可能会用到@DateTimeFormat注解 在请求数据为非J ...
- 使用Qt实现一个必应壁纸客户端
概要 必应的每日壁纸很好看,但是看不到一周以前的壁纸图片,日前使用python开发了必应壁纸收集站,可惜这样的收集站只能在线浏览,我在想要是有一款软件能够下载每日必应壁纸,并应用到windows的桌面 ...
- 保姆级别的RabbitMQ教程!一看就懂!(有安装教程,送安装需要的依赖包,送Java、Golang两种客户端教学Case)
保姆级别的RabbitMQ教程!一看就懂!(有安装教程,送安装需要的依赖包,送Java.Golang两种客户端教学Case) 目录 什么是AMQP 和 JMS? 常见的MQ产品 安装RabbitM ...