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) }