GO语言学习笔记2-int类型的取值范围
相比于C/C++语言的int类型,GO语言提供了多种int类型可供选择,有int8、int16、int32、int64、int、uint8、uint16、uint32、uint64、uint。
int类型的取值范围
- int8: -128 ~ 127
- int16: -32768 ~ 32767
- int32: -2147483648 ~ 2147483647
- int64: -9223372036854775808 ~ 9223372036854775807
- uint8: 0 ~ 255
- uint16: 0 ~ 65535
- uint32: 0 ~ 4294967295
- uint64: 0 ~ 18446744073709551615
关于int类型
- GO语言中int类型的大小是不确定的,与具体的平台有关系
- 一般来说,int在32位系统中是4字节,在64位系统中是8字节
- 使用自动推导类型初始化一个整数,默认为int类型
示例
package main
import (
"fmt"
"math"
"unsafe"
)
func main() {
// 输出各int类型的取值范围
fmt.Println("各int类型的取值范围为:")
fmt.Println("int8:", math.MinInt8, "~", math.MaxInt8)
fmt.Println("int16:", math.MinInt16, "~", math.MaxInt16)
fmt.Println("int32:", math.MinInt32, "~", math.MaxInt32)
fmt.Println("int64:", math.MinInt64, "~", math.MaxInt64)
fmt.Println()
// n是自动推导类型
n := 1234567890
fmt.Printf("n := 1234567890 的默认类型为:%T\n", n)
fmt.Printf("int类型的字节数为:")
fmt.Println(unsafe.Sizeof(n))
fmt.Printf("\n")
// 初始化一个32位整型值
var a int32 = 987654321
fmt.Println("var a int32 = 987654321")
// 输出变量的十六进制形式和十进制值
fmt.Printf("int32: 十六进制为0x%x,十进制为%d\n", a, a)
// 将a转换为int8类型, 发生数值截断
b := int8(a)
// 输出变量的十六进制形式和十进制值
fmt.Printf("int8: 十六进制为0x%x,十进制为%d\n", b, b)
// 将a转换为int16类型, 发生数值截断
c := int16(a)
// 输出变量的十六进制形式和十进制值
fmt.Printf("int16: 十六进制为0x%x,十进制为%d\n", c, c)
// 将a转换为int64类型
d := int64(a)
// 输出变量的十六进制形式和十进制值
fmt.Printf("int64: 十六进制为0x%x,十进制为%d\n", d, d)
代码输出:
各int类型的取值范围为:
int8: -128 ~ 127
int16: -32768 ~ 32767
int32: -2147483648 ~ 2147483647
int64: -9223372036854775808 ~ 9223372036854775807
n := 1234567890 的默认类型为:int
int类型的字节数为:8
var a int32 = 987654321
int32: 十六进制为0x3ade68b1,十进制为987654321
int8: 十六进制为0x-4f,十进制为-79
int16: 十六进制为0x68b1,十进制为26801
int64: 十六进制为0x3ade68b1,十进制为987654321
总结
由于GO语言中各int类型的取值范围不同,各int类型间进行数据转换时,会存在数据截断的问题,在使用过程中要引起注意。
个人主页:
GO语言学习笔记2-int类型的取值范围的更多相关文章
- 初步swift语言学习笔记2(可选类型?和隐式可选类型!)
作者:fengsh998 原文地址:http://blog.csdn.net/fengsh998/article/details/28904115 转载请注明出处 假设认为文章对你有所帮助.请通过留言 ...
- Go语言学习笔记(9)——接口类型
接口 Go 语言提供了另外一种数据类型即接口,它把所有的具有共性的方法定义在一起,任何其他类型只要实现了这些方法就是实现了这个接口. /* 定义接口 */ type interface_name in ...
- C语言学习笔记1-数据类型和标识符
http://blog.csdn.net/jadeshu/article/details/50751901 1.数据类型 ---1.1基本类型 --------------数值型(short(2) i ...
- c语言学习笔记.关键字.存储类型关键字等
关键字const 1.修饰变量. 修饰的对象为常量,只读. 2.修饰指针. const 也可以和指针变量一起使用,这样可以限制指针变量本身,也可以限制指针指向的数据. const 离变量名近就是用来修 ...
- 学习笔记28—Python 不同数据类型取值方法
1.array数据类型 1)-------> y[i,] 或者 y[i] 2.遍历目录下所有文件夹: def eachFile(filepath): pathDir = os.list ...
- C++等语言中整型int等的取值范围计算方式
举short为例说明 如果以最高位为符号位,二进制原码最大为0111111111111111=2的15次方减1=32767.最小为1111111111111111=-2的15次方减1=-32767此时 ...
- c c++各种类型的取值范围
int类型的变量存储值从-2147483648到2147483647 //例子 #include <iostream> using namespace std; int main(void ...
- Go语言学习笔记1 变量,类型以及赋值
1.变量 1.1 声明变量 使用var关键字可以创建一个指定类型的变量: var i int = 0 var i = 0 var i int 以上三个表达式均是合法的,第三个表达式会将i初始化为int ...
- GO语言学习笔记(一)
GO语言学习笔记 1.数组切片slice:可动态增长的数组 2.错误处理流程关键字:defer panic recover 3.变量的初始化:以下效果一样 `var a int = 10` `var ...
随机推荐
- Ubuntu16.04安装NVIDIA驱动、实现GPU加速
NVIDIA驱动前前后后装了好几遍,下面把个人的经验分享下,大家仅供参考. 老规矩,先引用师兄的(最详细)https://blog.csdn.net/sinat_23853639/article/de ...
- break和continue关键字的使用
一,break和continue关键字的使用 public class BreakContinueTest { public static void main(String args[]) { for ...
- 微信小程序资源整理
微信小程序相关的文档.教程.开源项目等资源的整理,以便于开发学习使用. —— —— 收录仅作个人学习使用,涉及侵权行为及时联系: maple_6392@163.com 项目地址:GitHub | 码云 ...
- [ASP.NET] 解决点击控件下载文件没有响应的问题
下载文件的方法是使用http响应输出流来实现的,使用到了response.write() 导致下载文件时点击控件出错,没有响应,也获取不了文件 是因为在母版页使用了updatepanel,因此回传时发 ...
- CDH管理节点扩容磁盘步骤
把4个节点加12G内存,把hive的heap调到6G,按group重启服务让配置生效 注: 停服务前在yarn的application webui查flink的application id yarn ...
- [Python3] 026 常用模块 calendar
目录 calendar 1. calendar.calendar(year, w, l, c, m) 2. calendar.prcal(year, w, l, c, m) 3. calendar.m ...
- seata demo
0. 介绍 2019 年 1 月,阿里巴巴中间件团队发起了开源项目 Fescar(Fast & EaSy Commit And Rollback),和社区一起共建开源分布式事务解决方案.Fes ...
- go相关资料
1.go的调度2.go struct能不能比较 因为是强类型语言,所以不同类型的结构不能作比较,但是同一类型的实例值是可以比较的,实例不可以比较,因为是指针类型 3.go defer(for defe ...
- RocketMQ高性能原理(pushConsumer,CommitLog,ZeroCopy)
1. Rocketmq消费模型(实时性) 常见的数据同步方式有这几种: push:producer发送消息后,broker马上把消息投递给consumer.这种方式好在实时性比较高,但是会增加brok ...
- Win7安装Visual Studio 2019闪退问题
最近在Win7 系统上安装最新版的VS2019发现 每次在这个画面之后就闪退了,即便换了台电脑也是一样的情况,于是我意识到,这应该是系统本身的问题 经过调查发现是只需要安装两个更新就可以了 这两个更新 ...