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

详解一下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 会启用“自动识别前缀”的模式

http://www.xdnf.cn/news/8081.html

相关文章:

  • 日语学习-日语知识点小记-构建基础-JLPT-N4阶段(27):失敗 失败 经验
  • GIM发布新版本了 (附rust CLI制作brew bottle流程)
  • 小米2025年校招笔试真题手撕(二)
  • git:The following paths are ignored by one of your
  • 阿里云服务器 篇十四:图片库网站
  • ext2文件系统详讲
  • Linux 玩转nfs
  • DeepSeek Mermaid:如何将文本直接转化为精美图表? -优雅草卓伊凡
  • JavaScript中从原数组中删除某个元素
  • 用对称化与chaining技术bound经验过程上确界的期望(Guntuboyina理论统计学笔记)
  • Python打卡训练营day29-类的装饰器
  • 深入学习和对比Python 列表与元组
  • 测量尺子:多功能测量工具,科技改变生活
  • PP-YOLOE-SOD学习笔记1
  • ThreadLocal线程本地变量在dubbo服务使用时候遇到的一个坑
  • Docker Compose`down`和`stop`命令的区别
  • 【RocketMQ 生产者和消费者】- 生产者启动源码-上报生产者和消费者心跳信息到 broker(3)
  • Modelsim的入门使用和Verilog编写
  • 【电流探头】LOTO电流探头线性度测量
  • Docker-mongodb
  • JavaWeb Web基础
  • 零碳办会新范式!第十届国际贸易发展论坛——生物能源和可持续发展专场,在京举办
  • 前端性能优化方案
  • 亚马逊英国站海关新规深度解读与合规指南
  • 中级统计师-统计学基础知识-第六章 回归分析
  • 快速部起一个Openwhisk平台,使用telego k8s服务部署能力内网部署
  • 中小制造企业网络安全防护指南
  • Linux Docker下安装tomcat
  • Spring3+Vue3项目中的知识点——跨域与解决方案
  • Gartner《如果有效评估Generative AI项目的投资回报》学习心得