Golang的进制转换实战案例
Golang的进制转换实战案例
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.常用进制概述
1>.进制概述
进制也就是进位制,是人们规定的一种进位方法。举个例子:二进制就是逢二进一,八进制就是封八进一,十进制就是逢十进一,十六进制就是锋十六进一,以此类推,X进制就是逢X进位。 下面我们说一下在编程中常用的几种进制: 二进制(Binary,缩写BIN): 是计算技术中广泛应用的一种进制数。二进制数据就是用0和1两个数字来表示的数,它的基数为2,进位规则是"逢二进一",借位规则是"借一当二"。
温馨提示:不能在程序中定义二进制数字。 八进制(Octal,缩写OCT): 一些编程语言中常常以数字0开始表示该数字是八进制,采用0,1,2,3,4,5,6,7这八个数字来表示的数,他的基数为8,进位规则是"逢八进一",借位规则是"借一当八"。 十进制(Decimal,缩写DEC): 生活中常用的就是十进制,比如1张100元人名币价值等于100个一元的硬币。采用0,1,2,3,4,5,6,7,8,9这十个数字来表示的数,它的基数为10,进位规则是"逢十进一",借位规则是"借一当十"。 十六进制(Hexadecimal,缩写HEX): 在计算机中十六进制一般表示内存地址。通我们日常生活中的表示方法不一样,采用0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F这十个数字[0-0]和六个字母[A-F]来表示的数,它的基数为16,进位规则是"逢十六进一",借位规则是"借一当十六"。
2>.进制转换
我记得小时候学习进制转换还是在初中的数学课本里学习的,但现在小学的课本里出现了进制转换的影子。我记得去年跟我领导的聊天时,他给我看手机里记录他小学三年级儿子的课本,其中有一道数学题搞不懂,想让我帮忙解释一下,其实就是计算机的二进制转换十进制的知识点。 大家都是九年义务教育,对简单的进制转换的概念都已经了如指掌了,毕竟生活中我们也常用到进制呢,我这里就不罗嗦了。想要简单回顾一下,可以看一下我之前学习时记录比较粗糙的笔记,博主推荐阅读: https://www.cnblogs.com/yinzhengjie/p/8656833.html https://www.cnblogs.com/yinzhengjie/p/8666354.html 接下来,我们一起来学习一下在Golang中,常用进制是如何转换的吧。
二.进制转换概述
1>.十进制转换其它进制案例
package main import ( "fmt" ) func main() { /* 温馨提示: 自动推导类型的变量默认是十进制(Decimal,缩写DEC)的数字,这可能和咱们生活中的习惯方式有关。 %b: 是一个占位符,表示一个二进制(Binary,缩写BIN)格式的数字 */ year := 2020 fmt.Printf("十进制2020对应的二进制表示为:[%b]\n", year) /* %o: 是一个占位符,表示一个八进制(Octal,缩写OCT)格式的数字 */ fmt.Printf("十进制2020对应的八进制表示为:[%o]\n", year) /* %x|%X: 是一个占位符,表示一个十六进制(Hexadecimal,缩写HEX)格式的数字 */ fmt.Printf("十进制2020对应的十六进制表示为:[%x]\n", year) fmt.Printf("十进制2020对应的十六进制表示为:[%X]\n", year) }
2>.八进制转换其它进制案例
package main import ( "fmt" ) func main() { /* 温馨提示: 以数字0开始表示该数字是八进制 %b: 是一个占位符,表示一个二进制(Binary,缩写BIN)格式的数字 */ year := 03744 fmt.Printf("八进制03744对应的二进制表示为:[%b]\n", year) /* %d: 是一个占位符,表示一个十进制(Decimal,缩写DEC)格式的数字 */ fmt.Printf("八进制03744对应的十进制表示为:[%d]\n", year) /* %x|%X: 是一个占位符,表示一个十六进制(Hexadecimal,缩写HEX)格式的数字 */ fmt.Printf("八进制03744对应的十六进制表示为:[%x]\n", year) fmt.Printf("八进制03744对应的十六进制表示为:[%X]\n", year) }
3>.十六进制转换成其它进制案例
package main import ( "fmt" ) func main() { /* 温馨提示: 以0x开始表示该数字是十六进制 %b: 是一个占位符,表示一个二进制(Binary,缩写BIN)格式的数字 */ year := 0x7e4 fmt.Printf("十六进制0x7e4对应的二进制表示为:[%b]\n", year) /* %o: 是一个占位符,表示一个八进制(Octal,缩写OCT)格式的数字 */ fmt.Printf("十六进制0x7e4对应的八进制表示为:[%o]\n", year) /* %d: 是一个占位符,表示一个十进制(Decimal,缩写DEC)格式的数字 */ fmt.Printf("十六进制0x7e4对应的十进制表示为:[%d]\n", year) }
当你的才华还撑不起你的野心的时候,你就应该静下心来学习。当你的能力还驾驭不了你的目标的时候,你就应该沉下心来历练。问问自己,想要怎样的人生。 欢迎加入基础架构自动化运维:598432640,大数据SRE进阶之路:959042252,DevOps进阶之路:526991186
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架