uint和int的区别_int32和uint32

uint和int的区别_int32和uint32本次测试的环境是Mac系统下,CPU64位。注意:go语言中的int的大小是和操作系统位数相关的;如果是32位操作系统,int类型的大小就是4字节;如果是64位操作系统,int类型的大小就是8个字节1、测试不同int类型占用字节数大小1.1、测试有符号int类型import( “testing” “unsafe” “math” “fmt”)funcTestIntSize(t*testing.T){ fmt.Println(“不同int类型占用的字节数大小:”)

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

================================
go grpc-go 相关技术专栏 总入口

go语言基础知识总结、整理、收藏

================================

本次测试的环境是Mac系统下,CPU 64位。

注意:
go语言中的int的大小是和操作系统位数相关的;

  • 如果是32位操作系统,int类型的大小就是4字节;
  • 如果是64位操作系统,int类型的大小就是8个字节

1、测试不同int类型占用字节数大小

1.1、测试有符号int类型

import (
	"testing"
	"unsafe"
	"math"
	"fmt"
)

func TestIntSize(t *testing.T) { 
   
	fmt.Println("不同int类型占用的字节数大小:")
	var i1 int = 1
	var i2 int8 = 2
	var i3 int16 = 3
	var i4 int32 = 4
	var i5 int64 = 5
	fmt.Printf("int : %v\n", unsafe.Sizeof(i1))
	fmt.Printf("int8 : %v\n", unsafe.Sizeof(i2))
	fmt.Printf("int16 : %v\n", unsafe.Sizeof(i3))
	fmt.Printf("int32 : %v\n", unsafe.Sizeof(i4))
	fmt.Printf("int64 : %v\n", unsafe.Sizeof(i5))
}

测试结果:

int    : 8
int8   : 1
int16  : 2
int32  : 4
int64  : 8

1.2、测试无符号int类型

func TestUIntSize(t *testing.T) { 
   
	fmt.Println("不同无符号int类型占用的字节数大小:")
	var i1 uint = 1
	var i2 uint8 = 2
	var i3 uint16 = 3
	var i4 uint32 = 4
	var i5 uint64 = 5
	fmt.Printf("uint : %v\n", unsafe.Sizeof(i1))
	fmt.Printf("uint8 : %v\n", unsafe.Sizeof(i2))
	fmt.Printf("uint16 : %v\n", unsafe.Sizeof(i3))
	fmt.Printf("uint32 : %v\n", unsafe.Sizeof(i4))
	fmt.Printf("uint64 : %v\n", unsafe.Sizeof(i5))
}

测试结果:

uint    : 8
uint8   : 1
uint16  : 2
uint32  : 4
uint64  : 8

2、测试不同int类型的取值范围

2.1、测试有符号int情况

func TestIntRange(t *testing.T) { 
   
	// 不同int类型的取值范围
	fmt.Println("不同int类型的取值范围:")
	//fmt.Println("int:", math.MinInt, "~", math.MaxInt) 报错,没有 math.MinInt math.MaxInt
	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()
}

测试结果:

不同int类型的取值范围:
int8: -128 ~ 127
int16: -32768 ~ 32767
int32: -2147483648 ~ 2147483647
int64: -9223372036854775808 ~ 9223372036854775807

2.2、 测试无符号不同int类型的取值范围

func TestUintRange(t *testing.T) { 
   
	fmt.Println("uint8:", 0, "~", math.MaxUint8)
	fmt.Println("uint16:", 0, "~", math.MaxUint16)
	fmt.Println("uint32:", 0, "~", math.MaxUint32)
	//fmt.Println("uint64:", 0, "~", math.MaxUint64)
	fmt.Println()
}

测试结果

=== RUN   TestUintRange
uint8: 0 ~ 255
uint16: 0 ~ 65535
uint32: 0 ~ 4294967295

--- PASS: TestUintRange (0.00s)
PASS
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/170552.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux 防火墙开放端口_防火墙放行端口

    linux 防火墙开放端口_防火墙放行端口Linux防火墙常用操作及端口开放1.查看防火墙状态firewall-cmd–state2.开启防火墙systemctlstartfirewalld.service3.开启指定端口firewall-cmd–zone=public–add-port=3306/tcp–permanentfirewall-cmd–zone=public–add-port=6379/tcp–permanent显示success表示成功–zone=public表示作用域为公共的

    2022年9月16日
    2
  • Linux下的文件IO编程[通俗易懂]

    Linux下的文件IO编程[通俗易懂]Linux中处处皆文件,可以通过终端命令来对文件进行操作,也可以通过编程语言(程序)来对文件进行操作。而在C语言中可以通过标准IO和文件IO对文件进行操作,上一篇文章描述了标准IO,这篇文章当然是关于文件IO的基本操作,同时给予了详细的例程和标准IO进行对比。

    2022年4月30日
    53
  • ORA-02287: 此处不同意序号「建议收藏」

    ORA-02287: 此处不同意序号

    2022年1月28日
    56
  • page.RegisterStartupScript 方法

    page.RegisterStartupScript 方法注意:此API现在已过时。在页响应中发出客户端脚本块。允许asp.net服务器控件在page中发出客户端脚本块。page.RegisterStartupScript(key,)参数key标识脚本块的唯一键。script要发送到客户端的脚本的内容。以下是一些应用实例:打开一个新窗口:   page.registerstartupscr

    2022年7月20日
    17
  • 为什么有些人除了上课时间以外都没有学习,成绩却还是很好?

    为什么有些人除了上课时间以外都没有学习,成绩却还是很好?新高二学生,成绩在班级10~12名左右。有两个女生特别6。第一个,我室友,上课以外的时间都是看漫画,看小说,画画,睡觉,吃零食。但是成绩就是很好,她化学进了学校的竞赛培训班,数学也很好,但是平时完全没有死命学的迹象。第二个,另一个寝室的,我们是寄宿学校要求交手机,她没交,经常看见她玩,成绩也是铁打的特别好。我观察了一下,她们共同特点就是上课听讲特别认真,然后就是会玩。我真的很想

    2022年6月2日
    50
  • oracle 19c ora-01017,Oracle 19c RMAN 连接PDB ORA-01017 错误解决方法

    oracle 19c ora-01017,Oracle 19c RMAN 连接PDB ORA-01017 错误解决方法在Oracle19c中,RMAN连接PDB时可能会出现ORA-01017的错误,如下:[dave@www.cndba.cnadmin]$rmantarget'”dave/dave@daveassysbackup”‘RecoveryManager:Release19.0.0.0.0-ProductiononWedFeb1716:33:292021Version…

    2022年5月31日
    106

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号