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 ...
随机推荐
- 关于token的理解
什么是token token的意思是“令牌”,是服务端生成的一串字符串,作为客户端进行请求的一个标识. 当用户第一次登录后,服务器生成一个token并将此token返回给客户端,以后客户端只需带上这个 ...
- Python学习之表的数据类型
数据类型 数值类型 类型 大小 范围(有符号) 范围(无符号)unsigned约束 用途 TINYINT 1 字节 (-128,127) (0,255) 小整数值 SMALLINT 2 字节 (-32 ...
- json得回顾
- AKKA学习(二) 未完
Actor调用 从上面的例子中,我们可以大概的对AKKA在JAVA中的使用有一个全局的概念.这里我们在稍微细致的讲解一下. 在JAVA中使用AKKA进行开发主要有这几个步骤: 定义消息模型. 创建Ac ...
- 存储过程实例基于postgersql
数据库用的是postgersql 数据库管理工具是DBeaver mybatis操作数据库基于jdbcTemplate 1.写的存储方法放在数据库下面的Procedures目录下 function ...
- 洛谷 P1472 奶牛家谱 Cow Pedigrees 题解
题面 这道题我觉得是个不错的题: 根据题意可以较清晰的发现ans只和n和k有关:(因为输入的只有这两个数啊~): 那么设f[i][j]表示前i层用了j个节点的方案数,g[i][j]表示深度小于等于i并 ...
- zabbix 监控redis python3脚本
一:安装redis-python模块 wge thttps://pypi.python.org/packages/source/r/redis/redis-2.9.1.tar.gz tar xf r ...
- 图片服务器期,利用一下园子练习一下markdown
图片储存
- 对比XGBoost与深度学习
观点1:XGBoost要比深度学习更重要.2016年Kaggle大赛29个获奖方案中,17个用了XGBoost.因为它好用,在很多情况下都更为可靠.灵活,而且准确:在绝大多数的回归和分类问题上,XGB ...
- Javaweb实训-宠物医院-社区宠物医院登陆页面
<%-- Created by IntelliJ IDEA. User: Administrator Date: 2018/3/13 Ti ...