



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第第页Go语言中的整数类型
在Go语言中,整型可以细分成两个种类十个类型。
有符号整型
int8:表示8位有符号整型;其类型宽度为8位,即1字节,表示范围:-128~127。
int16:表示16位有符号整型;其类型宽度为16位,即2字节,表示范围:-32768~32767。
int32:表示32位有符号整型;其类型宽度为32位,即4字节,表示范围:-2147483648~2147483647。
int64:表示64位有符号整型;其类型宽度为64位,即8字节,表示范围:-9223372036854775808~9223372036854775807。
int:根据不同的底层平台(UnderlyingPlatf(or)m),表示32或64位整型。除非对整型的大小有特定的需求,否则你通常应该使用int表示整型。其类型宽度在32位系统下是32位,而在64位系统下是64位。表示范围:在32位系统下是-2147483648~2147483647,而在64位系统是-9223372036854775808~9223372036854775807。
packagemainimport("fmt""math""unsafe")funcmain(){varnum8int8=127varnum16int16=32767varnum32int32=math.MaxInt32varnum64int64=math.MaxInt64varnumint=math.MaxIntfmt.Printf("typeofnum8is%T,sizeofnum8is%d,num8=%dn",num8,unsafe.Sizeof(num8),num8)fmt.Printf("typeofnum16is%T,sizeofnum16is%d,num16=%dn",num16,unsafe.Sizeof(num16),num16)fmt.Printf("typeofnum32is%T,sizeofnum32is%d,num32=%dn",num32,unsafe.Sizeof(num32),num32)fmt.Printf("typeofnum64is%T,sizeofnum64is%d,num64=%dn",num64,unsafe.Sizeof(num64),num64)fmt.Printf("typeofnumis%T,sizeofnumis%d,num=%dn",num,unsafe.Sizeof(num),num)}其中,程序中的Printf方法,可以使用%T格式说明符(FormatSpecifier)打印出变量的类型。而unsafe包的Sizeof函数接收变量并返回它的字节大小。使用unsafe包可能会带来可移植性问题,这里只是作为演示使用。如果你将num8的值改为128运行后就会报错,因为int8类型的最大值为127。该程序运行后输出如下:
typeofnum8isint8,sizeofnum8is1,num8=127typeofnum16isint16,sizeofnum16is2,num16=32767typeofnum32isint32,sizeofnum32is4,num32=2147483647typeofnum64isint64,sizeofnum64is8,num64=9223372036854775807typeofnumisint,sizeofnumis8,num=9223372036854775807无符号整型
uint8:表示8位无符号整型;其类型宽度为8位,即1字节,表示范围:0~255。
uint16:表示16位无符号整型;其类型宽度为16位,即2字节,表示范围:0~65535。
uint32:表示32位无符号整型;其类型宽度为32位,即4字节,表示范围:0~4294967295。
uint64:表示64位无符号整型;其类型宽度为64位,即8字节,表示范围:0~18446744073709551615。
uint:根据不同的底层平台,表示32或64位无符号整型。其类型宽度在32位系统下是32位,而在64位系统下是64位。表示范围在32位系统下是0~4294967295,而在64位系统是0~18446744073709551615。
packagemainimport("fmt""math""unsafe")funcmain(){varnum8uint8=128varnum16uint16=32768varnum32uint32=math.MaxUint32varnum64uint64=math.MaxUint64varnumuint=math.MaxUintfmt.Printf("typeofnum8is%T,sizeofnum8is%d,num8=%dn",num8,unsafe.Sizeof(num8),num8)fmt.Printf("typeofnum16is%T,sizeofnum16is%d,num16=%dn",num16,unsafe.Sizeof(num16),num16)fmt.Printf("typeofnum32is%T,sizeofnum32is%d,num32=%dn",num32,unsafe.Sizeof(num32),num32)fmt.Printf("typeofnum64is%T,sizeofnum64is%d,num64=%dn",num64,unsafe.Sizeof(num64),num64)fmt.Printf("typeofnumis%T,sizeofnumis%d,num=%dn",num,unsafe.Sizeof(num),num)}该程序运行结果如下:
typeofnum8isuint8,sizeofnum8is1,num8=128typeofnum16isuint16,sizeofnum16is2,num16=32768typeofnum32isuint32,sizeofnum32is4,num32=4294967295typeofnum64isuint64,sizeofnum64is8,num64=18446744073709551615typeofnumisuint,sizeofnumis8,num=18446744073709551615uint无符号整型和int有符号整型的区别就在于一个u,有u的就表示无符号,没有u的就表示有符号。
接下来讲讲它们表示范围的差别,例如int8和uint8,它们的类型宽度都为8位,能表示的数值个数为,对于无符号整数来说,表示的都是正数,所以表示范围为0~255,一共256个数。而对于有符号整数来说,就得借一位来表示符号,所以表示范围为-128~127,刚好也是256个数。
对于int8,int16等这些类型后面有跟一个数值的类型来说,它们能表示的数值个数是固定的。而对于int,uint这两个没有指定其大小的类型,在32位系统和64位系统下的大小是不同的。所以,在有的时候例如在二进制传输、读写文件的结构描述(为了保持文件的结构不会受到不同编译目标平台字节长度的影响)等情况下,使用更加精确的int32和int64是更好的。
不同进制的表示方法
一般我们习惯使用十进制表示法,当然,有时候我们也会使用其他进制表示一个整数。在Go中,以0b或0B开头的数表示二进制,以0o或0O开头的数表示八进制,以0x或0X开头的数表示十六进制。
packagemainimport("fmt")funcmain(){varnum2int=0b1100011varnum8int=0o143varnum10int=99varnum16int=0X63fmt.Println("num2=",num2)fmt.Println("num8=",num8)fmt.Println("num10=",num10)fmt.Println("num16=",num16)}该程序的四个数都表示十进制的99,程序运行后输出如下:
num2=99num8=99num10=99num16=99当然,你也可以使用fmt包的格式化输出相应的进制数。
packagemainimport("fmt")funcmain(){varnum2int=0b1100011varnum8int=0o143varnum10int=99varnum16int=0X63fmt.Printf("2进制数num2=%bn",num2)fmt.Printf("8进制数num8=%on",num8)fmt.Printf("1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Unit 6 第三课时 SectionA Grammar focus (3a~3d) 教学设计-2024-2025学年人教版(2024)英语七年级上册
- 高效办公室环境设计与心理调适策略研究报告
- 医疗设备与医疗技术的创新
- 2025四川南充市珙县选聘县属国有企业领导人4人笔试参考题库附带答案详解
- 婚庆行业人才培养与招聘策略
- 2025中国储备粮管理集团有限公司江苏分公司招聘73人笔试参考题库附带答案详解
- 2024重庆重庆长寿投资发展集团有限公司下属子公司招聘7人笔试参考题库附带答案详解
- 2024辽宁沈阳市城市建设投资集团有限公司所属二级企业沈阳公路建设有限公司拟聘用人员笔试参考题库附带答案详解
- 创新型实验室的运营模式探讨
- 预防青少年性侵
- (二诊)成都市2022级2025届高中毕业班第二次诊断性检测生物试卷(含官方答案)
- 2025年统编版高三政治二轮复习:当代国际政治与经济 练习
- 2025年云南省农业大学招聘工作人员历年自考难、易点模拟试卷(共500题附带答案详解)
- (二诊)成都市2022级2025届高中毕业班第二次诊断性检测语文试卷(含官方答案)
- 湖南省长沙市2024-2025学年九年级下学期入学考试英语试卷(含答案无听力原文及音频)
- 2025年国家会展中心上海有限责任公司招聘笔试参考题库含答案解析
- 《卓越领导力》课件
- 2024国家电投集团中国电力招聘(22人)笔试参考题库附带答案详解
- 《餐厅案例》课件
- 《大数据时代对会计行业产生的影响探究》10000字【论文】
- 2025年中国中信集团有限公司招聘笔试参考题库含答案解析
评论
0/150
提交评论