func ByteToBinaryString(data byte) (str string) {
创新互联公司专注于企业成都全网营销、网站重做改版、兴安网站定制设计、自适应品牌网站建设、H5响应式网站、成都做商城网站、集团公司官网建设、外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为兴安等各大城市提供网站开发制作服务。
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
}
//该代码片段来自于:
使用方法package main
import . "fmt"
func main() {
Printf("[%s][%s][%s][%s]\n",
ByteToBinaryString(byte(0)),ByteToBinaryString(byte(231)),
ByteToBinaryString(byte(168)), ByteToBinaryString(byte(162)))
}
//二进制转十六进制func btox(b string) string { base, _ := strconv.ParseInt(b, 2, 10) return strconv.FormatInt(base, 16)}//十六进制转二进制func xtob(x string) string { base, _ := strconv.ParseInt(x, 16, 10) return strconv.Format...
-1的二进制是1111 1111,不是1000 0001喔,负数的二进制表示为其原码的反码再加1,
正数的反码跟原码不变,而负数的反码除符号位外其他位取反
-1的原码是1000 0001,所以反码为1111 1110,最后在加1即1111 1111
如果二进制1000 0001是一个有符号位的8位数据,那么最高位为符号位,1为负数0为正数
那反过来二进制1000 0001表示成十进制就是减1在取反,
1000 0001 - 1=1000 0000
除符号位取反后为1111 1111即-127