首页 > 其他分享 >golang获取补码,原码

golang获取补码,原码

时间:2022-11-22 12:06:37浏览次数:38  
标签:ym fmt 补码 golang var data 原码


package main

import (
"encoding/binary"
"fmt"
"strconv"
)

func main() {
var a = []byte{0x15, 0x4B}
var b = []byte{0xE0, 0x15}
// fmt.Println(fmt.Sprintf("%.16b", 0x154B))
fmt.Println(GetYuanMa(a), GetYuanMa(b))

}
// 当data为原码时,输出补码
func GetBuMa(data []byte) uint16 {
var ym uint16
bm := binary.BigEndian.Uint16(data)
var bitNum = len(data) * 8
f := "%." + strconv.Itoa(bitNum) + "b"
bmStr := fmt.Sprintf(f, bm)
if string(bmStr[0]) == "1" {
ym = ^bm + 1
} else {
ym = bm
}
return ym
}

// 当data为补码时,输出原码。
// 原理: 补码的补码为原码
func GetYuanMa(data []byte) uint16 {
return GetBuMa(data)
}


标签:ym,fmt,补码,golang,var,data,原码
From: https://blog.51cto.com/u_11553781/5877558

相关文章

  • golang 分页
    //通过页码尺寸和当前页码以及总数据条数,获取limit,offset//20,2,34funcToLimitOffset(sizeInstring,indexInstring,countint)(limitint,offsetint){size,_......
  • golang如何导出csv格式的文件
    import("fmt""github.com/xormplus/xorm""golang.org/x/text/transform""golang.org/x/text/encoding/simplifiedchinese""io/ioutil""github.com/......
  • golang算法-链表逆序
    前言链表逆序,表述的场景为:A->B->C->D逆序后:D->C>B>A分析需要插入数据,Insert方法需要打印数据,Print方法插入数据时,需要定位最后一个节点,LastNode方法最少需要两个偏移量......
  • golang算法-判断链表是否有环
    前言链表有环,体现为:A->B->C->D->B…分析需要将遍历过的节点存入map,以址为key,空struct为值遍历时,当前节点是否已存在,存在即有环。实现链表//链表的长度,不包过头typeNode......
  • Golang常用的工具函数,无依赖,常更
    util.go//Executef()ntimesonfailfuncRetryHandler(nint,ffunc()(bool,error))error{ok,er:=f()ifok&&er==nil{returnnil}ifn-1>0......
  • golang实现限制每秒多少次的限频操作
    前言一些函数的执行可能会限制频率,比如某个api接口要求每秒最大请求30次。下面记录了自己写的限频和官方的限频代码//加锁限频,输出次数大概率小于最大值funcExecLimit(las......
  • Golang学习日志 ━━ 理解依赖包的管理(mod/非mod)和加载方式(项目路径、相对路径、绝对
    go有很多种方法调用依赖包,mod又加入了对包的版本管理。方式太多不免有令人迷惑和混乱的地方,希望本文能帮助大家了解目前使用规则一、mod/非mod管理方式go提供了两种项目......
  • CentOS6.4安装Golang环境
    什么是Go?  Go是一门并发支持、垃圾回收的编译型的系统编程语言,目的是为了创造一门具有在静态编译语言的高性能和动态语言的高效开发之间拥有良好平衡点的一门编程语言。......
  • golang 发布订阅
    packagemainimport(  "fmt"  "strings"  "sync"  "time"  "github.com/google/uuid")funcNewPubSub()*PubSubTrie{  return&P......
  • 源码补码与反码
    title:源码补码与反码comments:truedate:2022-11-2113:24:55tags:javacategory:计算机底层存储数据时使用的是二进制数字,但是计算机在存储一个数字时并不是直......