相比于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类型

示例

  1. package main
  2. import (
  3. "fmt"
  4. "math"
  5. "unsafe"
  6. )
  7. func main() {
  8. // 输出各int类型的取值范围
  9. fmt.Println("各int类型的取值范围为:")
  10. fmt.Println("int8:", math.MinInt8, "~", math.MaxInt8)
  11. fmt.Println("int16:", math.MinInt16, "~", math.MaxInt16)
  12. fmt.Println("int32:", math.MinInt32, "~", math.MaxInt32)
  13. fmt.Println("int64:", math.MinInt64, "~", math.MaxInt64)
  14. fmt.Println()
  15. // n是自动推导类型
  16. n := 1234567890
  17. fmt.Printf("n := 1234567890 的默认类型为:%T\n", n)
  18. fmt.Printf("int类型的字节数为:")
  19. fmt.Println(unsafe.Sizeof(n))
  20. fmt.Printf("\n")
  21. // 初始化一个32位整型值
  22. var a int32 = 987654321
  23. fmt.Println("var a int32 = 987654321")
  24. // 输出变量的十六进制形式和十进制值
  25. fmt.Printf("int32: 十六进制为0x%x,十进制为%d\n", a, a)
  26. // 将a转换为int8类型, 发生数值截断
  27. b := int8(a)
  28. // 输出变量的十六进制形式和十进制值
  29. fmt.Printf("int8: 十六进制为0x%x,十进制为%d\n", b, b)
  30. // 将a转换为int16类型, 发生数值截断
  31. c := int16(a)
  32. // 输出变量的十六进制形式和十进制值
  33. fmt.Printf("int16: 十六进制为0x%x,十进制为%d\n", c, c)
  34. // 将a转换为int64类型
  35. d := int64(a)
  36. // 输出变量的十六进制形式和十进制值
  37. fmt.Printf("int64: 十六进制为0x%x,十进制为%d\n", d, d)

代码输出:

  1. int类型的取值范围为:
  2. int8: -128 ~ 127
  3. int16: -32768 ~ 32767
  4. int32: -2147483648 ~ 2147483647
  5. int64: -9223372036854775808 ~ 9223372036854775807
  6. n := 1234567890 的默认类型为:int
  7. int类型的字节数为:8
  8. var a int32 = 987654321
  9. int32: 十六进制为0x3ade68b1,十进制为987654321
  10. int8: 十六进制为0x-4f,十进制为-79
  11. int16: 十六进制为0x68b1,十进制为26801
  12. int64: 十六进制为0x3ade68b1,十进制为987654321

总结

由于GO语言中各int类型的取值范围不同,各int类型间进行数据转换时,会存在数据截断的问题,在使用过程中要引起注意。


个人主页:

www.codeapes.cn

GO语言学习笔记2-int类型的取值范围的更多相关文章

  1. 初步swift语言学习笔记2(可选类型?和隐式可选类型!)

    作者:fengsh998 原文地址:http://blog.csdn.net/fengsh998/article/details/28904115 转载请注明出处 假设认为文章对你有所帮助.请通过留言 ...

  2. Go语言学习笔记(9)——接口类型

    接口 Go 语言提供了另外一种数据类型即接口,它把所有的具有共性的方法定义在一起,任何其他类型只要实现了这些方法就是实现了这个接口. /* 定义接口 */ type interface_name in ...

  3. C语言学习笔记1-数据类型和标识符

    http://blog.csdn.net/jadeshu/article/details/50751901 1.数据类型 ---1.1基本类型 --------------数值型(short(2) i ...

  4. c语言学习笔记.关键字.存储类型关键字等

    关键字const 1.修饰变量. 修饰的对象为常量,只读. 2.修饰指针. const 也可以和指针变量一起使用,这样可以限制指针变量本身,也可以限制指针指向的数据. const 离变量名近就是用来修 ...

  5. 学习笔记28—Python 不同数据类型取值方法

    1.array数据类型 1)-------> y[i,] 或者 y[i] 2.遍历目录下所有文件夹: def eachFile(filepath):     pathDir =  os.list ...

  6. C++等语言中整型int等的取值范围计算方式

    举short为例说明 如果以最高位为符号位,二进制原码最大为0111111111111111=2的15次方减1=32767.最小为1111111111111111=-2的15次方减1=-32767此时 ...

  7. c c++各种类型的取值范围

    int类型的变量存储值从-2147483648到2147483647 //例子 #include <iostream> using namespace std; int main(void ...

  8. Go语言学习笔记1 变量,类型以及赋值

    1.变量 1.1 声明变量 使用var关键字可以创建一个指定类型的变量: var i int = 0 var i = 0 var i int 以上三个表达式均是合法的,第三个表达式会将i初始化为int ...

  9. GO语言学习笔记(一)

    GO语言学习笔记 1.数组切片slice:可动态增长的数组 2.错误处理流程关键字:defer panic recover 3.变量的初始化:以下效果一样 `var a int = 10` `var ...

随机推荐

  1. normalization(统计)

    In statistics and applications of statistics, normalization can have a range of meanings.[1] In the ...

  2. Day06:方法 / 猜字母游戏

    JAVA方法 方法就是处理一个业务所需要编写的代码的代码段 方法特性 一个方法处理一个业务 方法代码编写,不和其他方法冲突 方法定义后可以随意调用 将main方法中的所有代码分散到各个普通方法中 减少 ...

  3. js多张图片合成一张图,canvas(海报图,将二维码和背景图合并) -----vue

    思路:vue中图片合并 首先准备好要合并的背景图,和请求后得到的二维码, canvas画图,将两张背景图和一张二维码用canvas画出来, 将canvas再转为img 注意canvas和图片的清晰图和 ...

  4. 普通帐号起redis

    wget http://download.redis.io/releases/redis-4.0.11.tar.gz $ tar xzf redis-4.0.11.tar.gzmv redis-4.0 ...

  5. 洛谷 P1273 有线电视网 题解

    题面 按照常见树形背包定义状态:设dp[u][j]表示在以u为根的子树中,选择j个客户所能获得的最大收益. 状态转移:dp[u][j]=max(dp[u][j-k],dp[v][k]-w(u,v)); ...

  6. PHP 识别获取身份证号代表的信息

    18位的身份证号每一位都代表什么 例如:110102197810272321 echo substr(110102197810272321,0,2)."<br>"; / ...

  7. day16 常用模块 sys os json pickle

          知识点 os:和操作系统相关sys:和解释器相关 json:和操作JSON(一种数据交换格式)相关pickle:序列化 hashlib:加密算法Collections:集合类型       ...

  8. 094、Swarm 中最重要的概念(Swarm01)

    参考https://www.cnblogs.com/CloudMan6/p/7845365.html   从主机层面来看,Docker Swarm 管理的是 Docker Host 集群.所以先来讨论 ...

  9. Git生成公钥.pub 及秘钥 命令

    Git生成公钥.pub 及秘钥 命令 ssh-keygen -t rsa -C "******@qq.com" 将.pub公钥里面内容复制到github或者将这文件交给git管理员 ...

  10. scala 从头越

    一个综合小例子, 要严格区分 函数与方法 , 与 java 不一样 /** * Scala 的值类型有 7 种 * Byte * Char * Short * Int * Long * Float * ...