golang 如何将二进制数据转为负数的十进制?

Python013

golang 如何将二进制数据转为负数的十进制?,第1张

-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

我们需要对一些文本进行"明文加密",何为"明文加密"?

从一些错乱的数据中,提取我们想要的数据.

生成错乱的数据(可以随机生成)

只需从上面的字符串提取数字即可,45.89.0.8

这里只是举个简单例子

这样就会该go文件同级目录生成bin文件

并未使用binary.Read()方法

读取到的文本

再根据自己的规则去提取该字符中你想要的数据即可.

func ByteToBinaryString(data byte) (str string) {

var a byte

for i:=0i <8i++ {

a = data

data <<= 1

data >>= 1

switch (a) {

case data: str += "0"

default: str += "1"

}

data <<= 1

}

return str

}

//该代码片段来自于: http://www.sharejs.com/codes/go/4357

使用方法package main

import . "fmt"

func main() {

Printf("[%s][%s][%s][%s]\n",

ByteToBinaryString(byte(0)),ByteToBinaryString(byte(231)),

ByteToBinaryString(byte(168)), ByteToBinaryString(byte(162)))

}