【Go快速入门】数据类型——整型

Go语言的整数类型一共有10个。
其中计算架构相关的整数类型有两个,即:有符号的整数类型int和无符号的整数类型uint。

有符号整型int

分为int8、int16、int32、int64

数据类型占用字节数据范围对比C语言
int81-128~127char
int162-32768~32767short
int324-2147483648~2147483647(21亿)long
int648-9223372036854775808~9223372036854775807比C最大要大

无符号整型uint

分为uint8、uint16、uint32、uint64

数据类型占用字节数据范围对比C语言
uint8(byte)10~255
uint1620~65535
uint3240~4294967295(42亿)unsigned long
uint6480~18446744073709551615

从上面看不到int/uint类型,即省略后面的数字不写,Go语言的int/uint类型,是不可移植的类型,其长度根据宿主机的机器字长决定,比如32位的架构,int/uint就是int32/uint32;64位架构,int/uint就是int64/uint64。
uintptr是宿主系统内足够存放一个指针的类型。

示例代码

package main

import "fmt"

func main()  {
    //定义变量,用关键字var
    //格式:普通赋值,由关键字var、变量名称、变量类型、=、值
    //若只声明不赋值,则去除=和后面的值
    var num uint64 = 65535

    // 短变量声明语句,由变量名size、特殊标记:=,以及值(需要你来填写)组成。
    size := (8)

    fmt.Printf("类型为uint64的整数 %d 需要占用的存储空间为:%d 个字节。\n", num, size)

    var (
        num8 int8
        num16 int16
        num32 int32
        num64 int64

        unum8 uint8 //别名类型byte
        unum16 uint16
        unum32 uint32
        unum64 uint64
    )

    //有符号整型可表示范围
    num8 = 127 //-128~127
    num16 = 32767 //-32768~32767
    num32 = 2147483647 //-2147483648~2147483647
    num64 = 9223372036854775807 //-9223372036854775808~9223372036854775807
    fmt.Printf("num8 最大值:%d,num16 最大值:%d,num32 最大值:%d,num64 最大值:%d\n", num8, num16, num32, num64);

    //无符号整型可表示范围
    unum8 = 255 //0~255
    unum16 = 65535 //0~65535
    unum32 = 4294967295 //0~4294967295
    unum64 = 18446744073709551615 //0~18446744073709551615
    fmt.Printf("unum8 最大值:%d,unum16 最大值:%d,unum32 最大值:%d,unum64 最大值:%d\n", unum8, unum16, unum32, unum64);


    // 声明一个整数类型变量并赋值
    var num1 int = -0x1000 //可以用8进制和16进制为所有整型变量赋值,但不能为浮点型变量赋值

    // 这里用到了字符串格式化函数。其中,%X用于以16进制显示整数类型值,%d用于以10进制显示整数类型值。
    fmt.Printf("16进制数 %X 表示的是 %d。\n", num1, ( num1 ))


    原文作者:海阳之新
    原文地址: https://www.jianshu.com/p/3facf0192b9c
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞