欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

go實現(xiàn)整型的二進制轉化的方法

 更新時間:2019年07月28日 09:32:15   作者:feiquan  
這篇文章主要介紹了go實現(xiàn)整型的二進制轉化的方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值 ,需要的朋友可以參考下

go中已經(jīng)實現(xiàn)了int->bin的轉化函數(shù),我這里只是化過程邏輯的實現(xiàn),至于原理我就假設大家都知道了

本案例只考慮  int->bin  的轉化

包含了正整數(shù),負整數(shù),0 的轉化

package main
import (
  "fmt"
  "strconv"
)
//bin表示轉化后的位數(shù)
func convertToBin(n int,bin int) string{
  var b string
  switch {
  case n==0:
    for i:=0;i<bin;i++{
      b+="0"
    }
  case n>0:
    //strcov.Itoa 將 1 轉為 "1" , string(1)直接轉為assic碼
    for ; n>0;n/=2{
      b=strconv.Itoa(n%2)+b
    }
    //加0
    j:=bin-len(b)
    for i:=0;i<j;i++{
      b="0"+b
    }
  case n<0:
    n=n*-1
    // fmt.Println("變?yōu)檎麛?shù):",n)
    s:=convertToBin(n,bin)
    // fmt.Println("bin:",s)
    //取反
    for i:=0;i<len(s);i++{
      if s[i:i+1]=="1"{
        b+="0"
      }else{
        b+="1"
      }
    }
    // fmt.Println("~bin :",b)
    //轉化為整形,之后加1 這里必須要64,否則在轉化過程中可能會超出范圍
    n,err :=strconv.ParseInt(b,2,64)
    if err!=nil{
      fmt.Println(err)
    }
    //轉為bin
    //+1
    b=convertToBin(int(n+1),bin)
  }
  return b
}
func main(){
  fmt.Println(
    convertToBin(5,8), //101
    convertToBin(13,8), //1101
    convertToBin(11111,8),
    convertToBin(0,8),
    convertToBin(1,8),
    convertToBin(-5,8),
    convertToBin(-11111,8),
  )
}

結果 :

5     13      11111      0    1      -5    -11111
00000101 00001101 10101101100111 00000000 00000001 11111011 1010010011001

比如-11111的轉化:

變?yōu)檎麛?shù): 11111
bin: 10101101100111
~bin : 01010010011000
結果:1010010011001

比如-1的轉化:

變?yōu)檎麛?shù): 1
bin: 00000001
~bin : 11111110
結果:11111111

總結

以上所述是小編給大家介紹的go實現(xiàn)整型的二進制轉化的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

相關文章

  • 一文精通管理多版本Go安裝教程

    一文精通管理多版本Go安裝教程

    這篇文章主要為大家介紹了一文精通管理多版本Go安裝教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • Go基礎教程系列之數(shù)據(jù)類型詳細說明

    Go基礎教程系列之數(shù)據(jù)類型詳細說明

    這篇文章主要介紹了Go基礎教程系列之數(shù)據(jù)類型詳細說明,需要的朋友可以參考下
    2022-04-04
  • GO語言文件的創(chuàng)建與打開實例分析

    GO語言文件的創(chuàng)建與打開實例分析

    這篇文章主要介紹了GO語言文件的創(chuàng)建與打開的具體用法,實例分析了GO語言文件創(chuàng)建與打開操作中所涉及的函數(shù)具體用法,具有一定的參考借鑒價值,需要的朋友可以參考下
    2014-12-12
  • Golang實現(xiàn)的聊天程序服務端和客戶端代碼分享

    Golang實現(xiàn)的聊天程序服務端和客戶端代碼分享

    這篇文章主要介紹了Golang實現(xiàn)的聊天程序服務端和客戶端代碼分享,本文先是講解了實現(xiàn)邏輯,然后給出了實現(xiàn)代碼,需要的朋友可以參考下
    2014-10-10
  • Golang使用Token來驗證

    Golang使用Token來驗證

    token指的是一種用于驗證用戶身份或授權訪問的憑證,本文主要介紹了Golang使用Token來驗證,具有一定的參考價值,感興趣的可以了解一下
    2024-08-08
  • go zero微服務框架logx日志組件剖析

    go zero微服務框架logx日志組件剖析

    這篇文章主要為大家介紹了go zero微服務框架logx日志組件剖析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • Golang pipe在不同場景下遠程交互

    Golang pipe在不同場景下遠程交互

    這篇文章主要介紹了Golang pipe在不同場景下遠程交互,pipe實現(xiàn)從一個進程重定向至另一個進程,它是雙向數(shù)據(jù)通道,用于實現(xiàn)進行間通信
    2023-03-03
  • 使用go自定義prometheus的exporter

    使用go自定義prometheus的exporter

    在prometheus中如果要監(jiān)控服務器和應用的各種指標,需要用各種各樣的exporter服務,這篇文章主要介紹了使用go自定義prometheus的exporter,需要的朋友可以參考下
    2023-03-03
  • Golang 實現(xiàn)獲取當前函數(shù)名稱和文件行號等操作

    Golang 實現(xiàn)獲取當前函數(shù)名稱和文件行號等操作

    這篇文章主要介紹了Golang 實現(xiàn)獲取當前函數(shù)名稱和文件行號等操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • Golang 使用Map實現(xiàn)去重與set的功能操作

    Golang 使用Map實現(xiàn)去重與set的功能操作

    這篇文章主要介紹了Golang 使用 Map 實現(xiàn)去重與 set 的功能操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04

最新評論