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)

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM