我尝试在 Go 中实现以下布局。
目前我可以弄清楚如何从字节 0 编码/设置位 6 和 7
// Element ID flag
bytesToSend[0] |= (1 << 7)
//N/S Flag
bytesToSend[0] |= (1 << 6)
但是我不知道如何在 Go 中编码 20 位的“块号”。
我确实认为阅读它我会做...
block_num_out := ((int(bytesToSend[0]) & 0x0f) << 16) | (int(bytesToSend[1]) << 8) | (int(bytesToSend[2]))
我尝试过的编码...
block_num_in := 343348
bytesToSend[0] |= block_num_in << 16
但这给出了一个错误......
invalid operation: bytesToSend[0] |= block_num_in << 16 (mismatched types byte and int)
我也试过
block_num_in := 343348
bytesToSend[0] |= (byte(block_num_in) << 16) & 0x0f
bytesToSend[1] |= byte(block_num_in) << 8
bytesToSend[2] |= byte(block_num_in)
有任何想法吗?谢谢!
子衿沉夜
相关分类