编程笔记 Golang基础 016 数据类型:数字类型

这篇具有很好参考价值的文章主要介绍了编程笔记 Golang基础 016 数据类型:数字类型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在Go语言中,数字类型是其丰富数据类型的一部分,主要用于表示数值。

以下是Go语言中主要的数字类型详解:

1. 整数类型(Integer Types)

a) 固定长度整数:
  • 有符号整数

    • int8:8位带符号整数,范围从-128到127。
    • int16:16位带符号整数,范围从-32,768到32,767。
    • int32:32位带符号整数,范围从-2,147,483,648到2,147,483,647。
    • int64:64位带符号整数,范围从-9,223,372,036,854,775,808到9,223,372,036,854,775,807。
  • 无符号整数

    • uint8byte:8位无符号整数,范围从0到255。
    • uint16:16位无符号整数,范围从0到65,535。
    • uint32:32位无符号整数,范围从0到4,294,967,295。
    • uint64:64位无符号整数,范围从0到18,446,744,073,709,551,615。
b) 变长整数:
  • intuint:长度取决于运行时平台,在32位系统上通常是32位,在64位系统上通常是64位。
  • uintptr:无符号整数类型,足够容纳指针值。它的大小同样依赖于目标架构。

2. 浮点数类型(Floating-Point Types)

  • float32:遵循IEEE-754标准的32位浮点数,提供大约7个有效数字精度。
  • float64:遵循IEEE-754标准的64位浮点数,通常提供约15位有效数字精度,这是Go语言中最常用的浮点数类型。

3. 复数类型(Complex Number Types)

  • complex64:由两个32位浮点数(实部和虚部)组成的复数,每个部分分别使用float32存储。
  • complex128:由两个64位浮点数(实部和虚部)组成的复数,每个部分分别使用float64存储。

4. 类型转换

不同类型的数字之间不能隐式转换,需要通过显式类型转换操作来完成,例如:

var i int32 = 100
var u uint64 = uint64(i)

5. 数字字面量

Go语言支持以十进制、八进制(前缀0o0O)、十六进制(前缀0x0X)等方式书写数字字面量。

6. 注意事项

在使用数字类型时,需要注意可能发生的溢出错误。Go语言不会阻止整数类型的溢出操作,而是采用无符号整数的模运算方式处理,这意味着当增加一个正数超过最大值或减少一个负数低于最小值时,数值会“绕回”到相应的另一端。对于防止溢出,程序员应自行确保计算过程的安全性。

实例

package main

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

func main() {
	var i8 int8
	var i16 int16
	var i32 int32
	var i64 int64
	var ui8 uint8
	var ui16 uint16
	var ui32 uint32
	var ui64 uint64

	fmt.Printf("%T %dB %v~%v\n", i8, unsafe.Sizeof(i8), math.MinInt8, math.MaxInt8)
	fmt.Printf("%T %dB %v~%v\n", i16, unsafe.Sizeof(i16), math.MinInt16, math.MaxInt16)
	fmt.Printf("%T %dB %v~%v\n", i32, unsafe.Sizeof(i32), math.MinInt32, math.MaxInt32)
	fmt.Printf("%T %dB %v~%v\n", i64, unsafe.Sizeof(i64), math.MinInt64, math.MaxInt64)

	fmt.Printf("%T %dB %v~%v\n", ui8, unsafe.Sizeof(ui8), 0, math.MaxUint8)
	fmt.Printf("%T %dB %v~%v\n", ui16, unsafe.Sizeof(ui16), 0, math.MaxUint16)
	fmt.Printf("%T %dB %v~%v\n", ui32, unsafe.Sizeof(ui32), 0, math.MaxUint32)
	fmt.Printf("%T %dB %v~%v\n", ui64, unsafe.Sizeof(ui64), 0, uint64(math.MaxUint64))

	var f32 float32
	var f64 float64

	fmt.Printf("%T %dB %v~%v\n", f32, unsafe.Sizeof(f32), -math.MaxFloat32, math.MaxFloat32)
	fmt.Printf("%T %dB %v~%v\n", f64, unsafe.Sizeof(f64), -math.MaxFloat64, math.MaxFloat64)

	var ui uint
	ui = uint(math.MaxUint64) //再+1会导致overflows错误
	fmt.Printf("%T %dB %v~%v\n", ui, unsafe.Sizeof(ui), 0, ui)

	var imax, imin int
	imax = int(math.MaxInt64) //再+1会导致overflows错误
	imin = int(math.MinInt64) //再-1会导致overflows错误

	fmt.Printf("%T %dB %v~%v\n", imax, unsafe.Sizeof(imax), imin, imax)
}

运行结果:文章来源地址https://www.toymoban.com/news/detail-836201.html

int8 1B -128~127
int16 2B -32768~32767
int32 4B -2147483648~2147483647
int64 8B -9223372036854775808~9223372036854775807
uint8 1B 0~255
uint16 2B 0~65535
uint32 4B 0~4294967295
uint64 8B 0~18446744073709551615
float32 4B -3.4028234663852886e+38~3.4028234663852886e+38
float64 8B -1.7976931348623157e+308~1.7976931348623157e+308
uint 8B 0~18446744073709551615
int 8B -9223372036854775808~9223372036854775807

到了这里,关于编程笔记 Golang基础 016 数据类型:数字类型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 100天精通Golang(基础入门篇)——第5天: Go语言中的数据类型学习

    🌷 博主 libin9iOak带您 Go to Golang Language.✨ 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍》学会IDEA常用操作,工作效率翻倍~💐 🪁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬请批

    2024年02月08日
    浏览(44)
  • Golang的数据类型及数据类型间转换整理

    Golang 更明确的数字类型命名,支持 Unicode,支持常用数据结构。   Go 语言中数据类型分为: 基本数据类型 和 复合数据类型   基本数据类型有: 整型、浮点型、布尔型、字符串 复合数据类型有: 数组、切片、结构体、函数、map、通道(channel)、接口。    类型 长度(字节

    2024年02月12日
    浏览(40)
  • 02-舞动数据类型:Golang 类型定义的奇妙之旅

    📃个人主页:个人主页 🔥系列专栏:Golang基础 💬Go(又称Golang)是由Google开发的开源编程语言。它结合了静态类型的安全性和动态语言的灵活性,拥有高效的并发编程能力和简洁的语法。Go被设计用于构建可扩展、高性能的软件系统,具有优秀的内存管理和快速的编译速度

    2024年02月09日
    浏览(46)
  • Golang 中的反射,并用来获取数据类型

    Go语言提供了一种机制在运行中获取某个变量的类型,获取或修改变量的值,调用变量的方法。 示例代码如下 通过 reflect.Value 判断变量类型,并转换成 string 。 输出结果: 输出结果:

    2024年01月22日
    浏览(51)
  • 【Golang】认识Go语言中基本的数据类型

    目录 整形 基本整型  特殊整型 浮点型 布尔型 字符型 字符串转义符  多行字符串 字符串的常用操作 复数 我们不论在学习什么语言中,我们都要去认识一下这个语言中的数据类型,当然学习Go也不例外,我们也要去认识一下其相关的数据类型,当然这些数据类型基本上是大

    2023年04月08日
    浏览(45)
  • 二、GoLang输出HelloWorld、基本数据类型、变量常量定义、基本类型转换

    go语言中,想要输出内容到控制台,package必须是main,包括方法名也必须是main, go语言输出的语法是 fmt 库。 Go语言的基本类型有: boolean:布尔类型 true / false string :字符串类型 数值型: int8:有符号8位整型(-128到127)长度 int16:有符号16位整型(-32768到32767)长度 int32:有

    2024年02月09日
    浏览(57)
  • Golang笔记:UDP基础使用与广播

    UDP是比较基础常用的网络通讯方式,这篇文章将介绍Go语言中UDP基础使用的一些内容。 本文中使用 Packet Sender 工具进行测试,其官网地址如下: https://packetsender.com/ UDP是一种面向无连接的通讯,抛开业务逻辑来说UDP使用上不需要像TCP那样先建立连接才能使用,收就是收、发就

    2024年02月09日
    浏览(37)
  • golang学习笔记(defer基础知识)

    defer语句用于golang程序中延迟函数的调用, 每次defer都会把一个函数压入栈中, 函数返回前再把延迟的函数取出并执行。 为了方便描述, 我们把创建defer的函数称为主函数, defer语句后面的函数称为延迟函数。延迟函数可能有输入参数, 这些参数可能来源于定义defer的函数,

    2024年04月25日
    浏览(46)
  • 二、GoLang输出HelloWorld、变量定义、数据类型的转换

    go语言中,想要输出内容到控制台,package必须是main,包括方法名也必须是main, go语言输出的语法是 fmt 库。 Go语言的基本类型有: boolean:布尔类型 true / false string :字符串类型 数值型: int8:有符号8位整型(-128到127)长度 int16:有符号16位整型(-32768到32767)长度 int32:有

    2024年02月10日
    浏览(48)
  • Golang教程一(环境搭建,变量,数据类型,数组切片map)

    目录 一、环境搭建 1.windows安装 2.linux安装  3.开发工具 二、变量定义与输入输出 1.变量定义 2.全局变量与局部变量 3.定义多个变量 4.常量定义 5.命名规范 6.输出 格式化输出 7.输入  三、基本数据类型 1.整数型 2.浮点型 3.字符型 4.字符串类型 转义字符 多行字符串 5.布尔类型

    2024年04月16日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包