请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

协议设计相关问题

老师我想知道为什么command要写成十六进制,有什么比十进制好的地方吗?

正在回答

1回答

conan老师 2023-06-17 17:56:33

部分硬件设备都使用二进制,如8位二进制、16位二进制等,使用16进制可以显著简化二进制值的表达方式,减少错误的发生概率。

0 回复 有任何疑惑可以回复我~
  • 提问者 kanokano #1
    是因为有些设备不支持十进制才这样设计的吗,但是大部分设备还是支持十进制的吧?
    回复 有任何疑惑可以回复我~ 2023-06-17 18:01:43
  • conan老师 回复 提问者 kanokano #2
    也不是不支持,就是过程中需要转换。举个例子:一个8bit的二进制数就可以表示8种状态,比如(只是一个假设场景)一个用户的属性中 有是否可以添加好友 是否禁言 2个属性,那么正常情况下我们需要2个字段去存放这2个值,而实际上用一个8bit位的整形就可以存下8个这种值,这种值只有是或者否2个情况,那么我们只需要取对应位的值是否为1即可判断出来。(这里并不是说8个属性浓缩成一个字段来表示是正确的,只是举个简单的例子)
    回到我们的系统,我们在一些特殊command的时候,我们是不是也可以通过这种方式减少数据的传输?比如心跳消息,心跳消息是没有业务意义的,我们是不是可以约定一下在command的第几位为x就表示心跳消息?
    回复 有任何疑惑可以回复我~ 2023-06-17 18:18:49
  • 提问者 kanokano 回复 conan老师 #3
    因为十进制没有二进制这么灵活,有转换的过程,二进制有些特殊情况不需要转换就可以直接使用,我理解的对吗?
    回复 有任何疑惑可以回复我~ 2023-06-17 18:36:33
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信