//二進(jìn)制轉(zhuǎn)十六進(jìn)制
創(chuàng)新互聯(lián)建站10多年企業(yè)網(wǎng)站建設(shè)服務(wù);為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì)及高端網(wǎng)站定制服務(wù),企業(yè)網(wǎng)站建設(shè)及推廣,對(duì)辦公空間設(shè)計(jì)等多個(gè)方面擁有多年設(shè)計(jì)經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。
func?btox(b?string)?string?{
base,?_?:=?strconv.ParseInt(b,?2,?10)
return?strconv.FormatInt(base,?16)
}
//十六進(jìn)制轉(zhuǎn)二進(jìn)制
func?xtob(x?string)?string?{
base,?_?:=?strconv.ParseInt(x,?16,?10)
return?strconv.FormatInt(base,?2)
}
-1的二進(jìn)制是1111 1111,不是1000 0001喔,負(fù)數(shù)的二進(jìn)制表示為其原碼的反碼再加1,
正數(shù)的反碼跟原碼不變,而負(fù)數(shù)的反碼除符號(hào)位外其他位取反
-1的原碼是1000 0001,所以反碼為1111 1110,最后在加1即1111 1111
如果二進(jìn)制1000 0001是一個(gè)有符號(hào)位的8位數(shù)據(jù),那么最高位為符號(hào)位,1為負(fù)數(shù)0為正數(shù)
那反過(guò)來(lái)二進(jìn)制1000 0001表示成十進(jìn)制就是減1在取反,
1000 0001 - 1=1000 0000
除符號(hào)位取反后為1111 1111即-127
func ByteToBinaryString(data byte) (str string) {
var a byte
for i:=0; i 8; i++ {
a = data
data = 1
data = 1
switch (a) {
case data: str += "0"
default: str += "1"
}
data = 1
}
return str
}
//該代碼片段來(lái)自于:
使用方法package main
import . "fmt"
func main() {
Printf("[%s][%s][%s][%s]\n",
ByteToBinaryString(byte(0)),ByteToBinaryString(byte(231)),
ByteToBinaryString(byte(168)), ByteToBinaryString(byte(162)))
}
二進(jìn)制包安裝的話:如果安裝在了默認(rèn)位置例如/usr/local/go (Windows系統(tǒng):c:\Go)這個(gè)時(shí)候可以不需要設(shè)置GOROOT,如果改變了安裝的這個(gè)默認(rèn)目錄,那么就需要設(shè)置GOROOT GOROOT的概念有點(diǎn)Go安裝目錄的意思 GOPATH是一個(gè)開(kāi)發(fā)環(huán)境目錄的意思