当前位置: 首页 > news >正文

详解一下Go语言中的ParseInt

✅ 函数签名

func ParseInt(s string, base int, bitSize int) (i int64, err error)
参数名类型作用
sstring要转换的数字字符串,比如 "123""0x1F""ff"
baseint指定进制,常用的有 2(二进制)、10(十进制)、16(十六进制)
bitSizeint指定目标整数的位数:08163264(决定返回值的范围和溢出判断)

bitSize 决定了解析结果应符合哪个整数类型范围:

0 或 64:输出为 int64 (当 bitSize 传入 0 时,表示你希望返回值是 int 类型对应的系统默认位数(通常是 int64 或 int32,取决于你的平台)。)

32:结果不能超出 int32 范围
16:结果不能超出 int16 范围
8:结果不能超出 int8 范围

返回值类型说明
iint64成功转换后的十进制整数
errerror如果格式错误或溢出,返回错误

该函数将输入的字符串转换成十进制,但你可以向它输入任何可以接收的进制数

num, err := strconv.ParseInt("12345", 10, 64) //十进制
fmt.Println(num) // 输出:12345
num, err := strconv.ParseInt("1a", 16, 64)//十六进制
fmt.Println(num) // 输出:26(1a 十六进制 = 26 十进制)
num, err := strconv.ParseInt("1011", 2, 64)//二进制
fmt.Println(num) // 输出:11

即第二个参数base是传入的字符串的进制,但输出的最终结果只会是十进制

⛔ 错误输入

num, err := strconv.ParseInt("xyz", 10, 64)
if err != nil {fmt.Println("出错:", err) // invalid syntax
}

⛔ 进制范围超出

num, err := strconv.ParseInt("9999999999999", 10, 8) // 超出 int8 范围
if err != nil {fmt.Println("出错:", err) // value out of range
}

自动识别进制:用 strconv.ParseInt 的兄弟函数 strconv.Atoi() 或 strconv.ParseUint()。

i, err := strconv.Atoi("123") // 只能解析十进制(等价于 ParseInt(s, 10, 0))

带前缀的字符串(如 0x, 0b)不被 ParseInt 自动识别,如果你想要自动识别十六进制/八进制等前缀(如 0x, 0o, 0b),可以使用:

i, err := strconv.ParseInt("0xff", 0, 64)

其中 base = 0 会启用“自动识别前缀”的模式

相关文章:

  • 【烧脑算法】单序列双指针:从暴力枚举到高效优化的思维跃迁
  • 后端开发实习生-抖音生活服务
  • 杰发科技AC7840——使用内部温度
  • AbMole推荐Rapamycin: 自噬、肿瘤、免疫、衰老研究的关键工具
  • Idea出现 100% classes 等
  • C++初阶-list的使用2
  • 【软考向】Chapter 3 数据结构
  • 全面学习c++类与对象(中)(非常重要)(析构构造拷贝函数赋值运算符重载等等)
  • SOC-ESP32S3部分:7-如何学习ESP32S3-IDF开发
  • PHP7内核剖析 学习笔记 第七章 面向对象
  • 如何减⼩dockerfile⽣成镜像体积?
  • ollama+open-webui搭建可视化大模型聊天
  • Android-MVVM框架学习总结
  • BERT框架:自然语言处理的革命性突破
  • 服务器操作系统调优内核参数(方便查询)
  • SDWebImage源码学习
  • vue组件渲染到iframe里面(同域名下),组件可以在同一项目下维护
  • Linux 部署 RocketMQ
  • oracle数据库查看当前session会话数、查询最大支持连接数、修改最大支持连接数
  • 服务器并发实现的五种方法
  • 免费下载微信/seo人人网
  • 做塑料哪个网站好/惠州seo排名
  • 厦门网站制作方案/产品推广方案范文500字
  • 温州苍南网站建设/广州高端网站建设公司
  • 做网站开发需要学哪些东西/seo快速整站上排名教程
  • 网站建设pqiw/做神马seo快速排名软件