使用 Swift 计算最高和最低有效字节(MSB、LSB)

and*_*ift 2 protocols swift

我对这门语言有点陌生Swift,正在尝试学习该语言,同时研究一些通信协议。

该协议要求实现两个函数计算给定值的最高和最低有效字节(MSB, LSBint,并且输入不能大于0xFFFF

例如,如果输入是286(0x11E),那么它应该返回0x01forMSB和 return 0x1Efor LSB

我知道有很多其他语言的参考,但无法得到我想要的并重写为Swift.

请帮忙
谢谢

OOP*_*Per 5

这是一个简单的位操作。

查看二进制表示形式的 0x11E:

(higher bits are always 0) 0000 0001 0001 1110
                       MSB ^^^^ ^^^^
                       LSB           ^^^^ ^^^^
Run Code Online (Sandbox Code Playgroud)

因此,您只需要使用按位与运算进行位移位和位屏蔽。

let data = 286
let lsb = data & 0xFF
let msb = (data >> 8) & 0xFF

print(String(format: "lsb=0x%02x, msb=0x%02x", lsb, msb)) //->lsb=0x1e, msb=0x01
Run Code Online (Sandbox Code Playgroud)