app开发者平台在数字化时代的重要性与发展趋势解析
589
2022-11-30
Go 变量 整数类型
整形
每种数值类型都决定了对应的大小范围和是否支持正负符号。
类型名 | 字节宽度 | 取值范围 |
int | 与平台有关 | 32 位系统 4 字节,64 位系统 8 字节 有符号整型 |
uint | 与平台有关 | 32 位 系统 4 字节,64 位 系统 8 字节 无符号整形 |
int8 | 1 字节 | 用 8 位表示的有符号整型 取值范围为:[-128, 127] |
int16 | 2 字节 | 用 16 位表示的有符号整型 取值范围为:[-32768,32767] |
int32 | 4 字节 | 用 32 位表示的有符号整型,取值范围为:[-2147483648,2147483647] |
int64 | 8 字节 | 用 64 位表示的有符号整型,取值范围为:[-9223372036854775808,9223372036854775807] |
uint8 | 1 字节 | 用 8 位表示的无符号整型,取值范围为:[0,255] |
uint16 | 2 字节 | 用 16 位表示的无符号整型,取值范围为:[0,65535] |
uint32 | 4 字节 | 用 32 位表示的无符号整型,取值范围为:[0,4294967295] |
uint64 | 8 字节 | 用 64 位表示的无符号整型,取值范围为:[0,18446744073709551615] |
uintptr | 与平台有关 | 32 位系统 4 字节,64 位系统 8 字节指针值的无符号整型 |
整数的类型
这里有int8、int16、int32和int64四种截然不同大小的有符号整形数类型,分别对应8、16、32、64bit大小的有符号整形数,与此对应的是uint8、 uint16、uint32和uint64四种无符号整形数类型。
占用的存储空间不一样,直接导致的是表示数的范围不一样。
占有的字节里面其中第一个比特是用来表示符号,剩下的才用来表示数本身的值。-128其实就是-2^7 - 2^7 -1
那么它的第一位可以用来表示数值,也就是表示数本身。2^8 -1 =255
在做开发的时候要根据你表示数的范围来选取合适的数据类型,有符号或者无符号的。
int表示几个字节,和系统有关系,比如32位的系统,那么占4个字节,如果是64位系统那么占8个字节。
rune表示unicode码,用其处理带有中文的字符串特别有用。
byte存储当额字母的时候选用byte来存储。
整型的使用细节
1)Golang各整数类型分∶有符号和无符号,int uint 的大小和系统有关。
3)如何在程序查看某个变量的字节大小和数据类型
d := 10 fmt.Printf("%T,%d",d,unsafe.Sizeof(d))]]]int,8
4)Golang程序中整型变量在使用时,遵守保小不保大的原则,即∶在保证程序正
确运行下,尽量使用占用空间小的数据类型。【如∶年龄】
5)bit∶计算机中的最小存储单位。byte∶计算机中基本存储单元。【二进制再详细说】
一个byte等于8个bit。
扩展
进程内存结构:
栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中(new 出来的对象)堆: 存放用new产生的数据
值类型和引用类型 是什么?
值类型: 这段内存里面存储的是基本类型的数据, 比如 "a", 10, 0.01引用类型: 这段内存里面存储的是一个地址, 比如 0xc00011e370 0xc00011e380
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~