我是靠谱客的博主 野性糖豆,最近开发中收集的这篇文章主要介绍golang获取补码,原码,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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)
}

最后

以上就是野性糖豆为你收集整理的golang获取补码,原码的全部内容,希望文章能够帮你解决golang获取补码,原码所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部