02-go数据类型内存结构-整数

博客介绍了Go语言中整数和复数的数据存储及结构。整数根据字节长度直接存储值,经type做别名定义的整数会有别名类型定义信息;complex64由8个字节组成,complex128由16个字节组成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 整数

type myint32 int32
type myint322 int32
var var_byte byte = 0x12;
var var_rune rune = 0x12;
var var_int8 int8 = 0x12;
var var_int32 int32 = 0x12;
var var_myint32 myint32 = 0x12;
var var_myint322 myint322 = 0x12;
var var_int64 int64 = 0x123456;
var var_float32 float32 = 3.1415926;
var var_float64 float64 = 3.1415926;
var var_uint8 uint8 = 0x12
var var_uint32 uint32 = 0x123456

由汇编可以看出,整数都是根据其字节长度直接存储值的。
不同的是经过type 做了别名定义的整数,会有别名的类型定义信息。如
var_myint32。

"".var_byte SNOPTRDATA size=1
        0x0000 12                                               .
"".var_rune SNOPTRDATA size=4
        0x0000 12 00 00 00                                      ....
"".var_int8 SNOPTRDATA size=1
        0x0000 12                                               .
"".var_int32 SNOPTRDATA size=4
        0x0000 12 00 00 00                                      ....
"".var_myint32 SNOPTRDATA size=4
        0x0000 12 00 00 00                                      ....
"".var_myint322 SNOPTRDATA size=4
        0x0000 12 00 00 00                                      ....
"".var_int64 SNOPTRDATA size=8
        0x0000 56 34 12 00 00 00 00 00                          V4......
"".var_float32 SNOPTRDATA size=4
        0x0000 da 0f 49 40                                      ..I@
"".var_float64 SNOPTRDATA size=8
        0x0000 4a d8 12 4d fb 21 09 40                          J..M.!.@
"".var_uint8 SNOPTRDATA size=1
        0x0000 12                                               .
"".var_uint32 SNOPTRDATA size=4
        0x0000 56 34 12 00                                      V4..

type myint32 int32对应的类型信息,定义了两个 type.*"".myint32,type."".myint32

type..namedata.*main.myint32- SRODATA dupok size=16
        0x0000 00 00 0d 2a 6d 61 69 6e 2e 6d 79 69 6e 74 33 32  ...*main.myint32
type.*"".myint32 SRODATA size=56
        0x0000 08 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00  ................
        0x0010 41 ae 9f ea 00 08 08 36 00 00 00 00 00 00 00 00  A......6........
        0x0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
        0x0030 00 00 00 00 00 00 00 00                          ........
        rel 24+8 t=1 runtime.algarray+80
        rel 32+8 t=1 runtime.gcbits.01+0
        rel 40+4 t=5 type..namedata.*main.myint32-+0
        rel 48+8 t=1 type."".myint32+0
runtime.gcbits. SRODATA dupok size=0
type."".myint32 SRODATA size=64
        0x0000 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
        0x0010 8a b5 1e d0 07 04 04 85 00 00 00 00 00 00 00 00  ................
        0x0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
        0x0030 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00  ................
        rel 24+8 t=1 runtime.algarray+64
        rel 32+8 t=1 runtime.gcbits.+0
        rel 40+4 t=5 type..namedata.*main.myint32-+0
        rel 44+4 t=5 type.*"".myint32+0
        rel 48+4 t=5 type..importpath."".+0

2. 复数

var var_complex64 complex64 = 5 + 10i
var var_complex128 complex128 = complex(5,10)

complex64由8个字节组成。
complex128由16个字节组成。

"".var_complex64 SNOPTRDATA size=8
        0x0000 00 00 a0 40 00 00 20 41                          ...@.. A
"".var_complex128 SNOPTRDATA size=16
        0x0000 00 00 00 00 00 00 14 40 00 00 00 00 00 00 24 40  .......@......$@
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值