go實現整型的二進位制轉化

2022-03-15 21:34:14 字數 1249 閱讀 5667

go中已經實現了int->bin的轉化函式,我這裡只是化過程邏輯的實現,至於原理我就假設大家都知道了

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

包含了正整數,負整數,0 的轉化

package main

import (

"fmt""

strconv")

//bin表示轉化後的位數

func converttobin(n int,bin int) string

case n>0

:

將 1 轉為 "1" , string(1)直接轉為assic碼

for ; n>0;n/=2

//加0

j:=bin-len(b)

for i:=0;i

case n<0

: n=n*-1

"變為整數:",n)

s:=converttobin(n,bin)

"bin:",s)

//取反

for i:=0;i

else

}"~bin :",b)

//轉化為整形,之後加1 這裡必須要64,否則在轉化過程中可能會超出範圍

n,err :=strconv.parseint(b,2,64

)

if err!=nil

//轉為bin

//+1

b=converttobin(int(n+1

),bin)

}returnb}

func main()

結果 :

5     13      11111      0    1      -5    -11111

00000101

00001101

10101101100111

00000000

00000001

11111011

1010010011001

比如-11111的轉化:

變為整數: 11111

bin:

10101101100111

~bin : 01010010011000

結果:1010010011001

比如-1的轉化:

變為整數: 1

bin:

00000001

~bin : 11111110

結果:11111111

浮點數轉化為二進位制整型

任何資料在記憶體中都是以二進位制的形式儲存的,例如乙個short型資料1156,其二進位制表示形式為00000100 10000100。則在intel cpu架構的系統中,存放方式為 10000100 低位址單元 00000100 高位址單元 因為intel cpu的架構是小端模式。但是對於浮點數在...

DB blob二進位製流轉化

檔案在資料庫裡以blob形式儲存,那麼在讀出來的也是位元組流 inputstream 下面是將位元組流轉換為二進位製流,然後再轉換為字元流以過到操作檔案的目的 inputstream in inputstream ds.getobject 1,content 將從資料庫中得到的流轉化為二進位製流 b...

Go打包二進位制檔案的實現

背景 眾所周知,go語言可打包成目標平台二進位制檔案是其一大優勢,如此go專案在伺服器不需要配置go環境和依賴就可跑起來。操作需求 打包部署到centos7 筆者打包環境 mac os 方法 進入main.go所在目錄,輸入如下命令,當前目錄便會生成main的可執行檔案 cgo enabled 0 ...