首页 > 其他分享 >golang 模拟byte数组

golang 模拟byte数组

时间:2022-12-01 19:33:28浏览次数:59  
标签:msgLenHH fmt uint8 golang 数组 Printf Println byte 0x%

package main

import (
"fmt"
)
type Bytes[]byte

func main(){
	fmt.Println("hello") 
	fmt.Println("--------------")
	// ascii 字符====================================
	var ascChar = Bytes{65}
	fmt.Println(string(ascChar))
	fmt.Println(len(ascChar))
	fmt.Println("--------------")
	// 十六进制======================================
	var u8 = 0x41
	fmt.Printf("%d\n", u8)
	fmt.Printf("0x%x\n", u8)
	fmt.Println("--------------")
	
	// 取高八位和低八位==================================
	var reqId uint16 = 2002 
	// ----high 8 bit
	reqIdH := uint8(reqId>>8)
	fmt.Printf("reqIdH = 0x%x\n",reqIdH)
	fmt.Printf("type of reqIdH = %T\n",reqIdH)
	// ----low 8 bit
	reqIdL := uint8(reqId &0xff )
	fmt.Printf("reqIdL = 0x%x\n",reqIdL)
	fmt.Printf("type of reqIdL = %T\n",reqIdL)
	fmt.Println("--------------")
	// msgLen============================
	var msgLen uint32 = 0x12345678
	var msgLenHH uint8 = uint8(msgLen >> 24 )
	var msgLenHL uint8=uint8(msgLen >> 16 & 0xff )
	var msgLenLH uint8=uint8(msgLen >> 8 & 0xff )
	var msgLenLL uint8=uint8(msgLen  & 0xff )

	fmt.Printf("msgLenHH = 0x%x\n",msgLenHH)
	fmt.Printf("type of msgLenHH = %T\n",msgLenHH)

	fmt.Printf("msgLenHL = 0x%x\n",msgLenHL)
	fmt.Printf("type of msgLenHL = %T\n",msgLenHH)

	fmt.Printf("msgLenLH = 0x%x\n",msgLenLH)
	fmt.Printf("type of msgLenLH = %T\n",msgLenHH)

	fmt.Printf("msgLenLL = 0x%x\n",msgLenLL)
	fmt.Printf("type of msgLenLL = %T\n",msgLenHH)
	fmt.Println("--------------")
	// msgType =======================
	var msgType uint16 = 0x1234 
	// ----high 8 bit
	msgTypeH := uint8(msgType>>8)
	fmt.Printf("msgTypeH = 0x%x\n",msgTypeH)
	fmt.Printf("type of msgTypeH = %T\n",msgTypeH)
	// ----low 8 bit
	msgTypeL := uint8(msgType &0xff )
	fmt.Printf("msgTypeL = 0x%x\n",msgTypeL)
	fmt.Printf("type of msgTypeL = %T\n",msgTypeL)
	fmt.Println("--------------")

// agv 报文结构======================================
	agvTcp := Bytes{0x5A,0x01,reqIdH,reqIdL,msgLenHH,msgLenHL,msgLenLH,msgLenLL,msgTypeH,msgTypeL}
	fmt.Printf("%x\n",agvTcp)
	fmt.Println("--------------")


















	





	





}

标签:msgLenHH,fmt,uint8,golang,数组,Printf,Println,byte,0x%
From: https://www.cnblogs.com/zhuoss/p/16942466.html

相关文章

  • acwing 140. 后缀数组
    把字符串S的所有后缀按照字典序排列,排名为i的后缀记为SA[i] 额外地,我们考虑排名为i的后缀与排名为 i-1的后缀,把二者的最长公共前缀的长度记为hgt[i]使用快排......
  • 剑指offer:数组中出现次数超过一半的数字
    题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因......
  • 剑指offer:数组中的逆序对
    题目描述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。classSolution{public:intInv......
  • List集合转换成数组
    我现在有个需求:将File集合转换成MultipartFile数组结构然后我就开始在网上开启了List转换到数组之旅。首先来看一个例子ArrayList<String>list=newArrayList<......
  • django mysql\base.py 报错 KeyError: <class 'bytes'>`
     追踪源码:问题文件:Python36\lib\site-packages\django\db\backends\mysql\base.pydefget_new_connection(self,conn_params):conn=Database.connect......
  • vue2 数组18 some erver filter reduce axios
    some: return true是固定写法,终止some循环 erver: filter:   优化写法:arr.filter(item=>item.state).reduce((累加的结果,当前循环项)=>{},初始值)拿上......
  • Go--求数组奇偶数之和
    packagemain//申明main包import"fmt"//导入fmt标准库funcmain(){arr:=[...]int{01,11,22,33,44,55,66,77,88,99,98,87,76,65,54,43,32,......
  • js 将长度不确定的数组分割成n个一组的数组
    代码实现:consttransSliceImg=(imgs,num)=>{letnewImgs=[]returnimgs.reduce(function(pre,item,index,imgs){varbegin=index*num;......
  • CS144 lab1: stitching substrings into a byte stream
    CS144lab1:stitchingsubstringsintoabytestream​ Lab1中我们主要实现一个叫做StreamReassembler的东西。从Lab1提供的文档中,我们可以大致了解未来我们将要自己实......
  • 7.golang语言学习,标识符的命名规范
    1.凡是自己可以命名的都是标识符2.命名规则a.由26个英文字母,数字0-9,_组成b.不能数字开头c.严格区分大小写d.不能包含空格e.下划线”_“本身在go......