【问题标题】:Setting values of bytearray设置字节数组的值
【发布时间】:2012-02-25 09:18:24
【问题描述】:

我有一个 BYTE 数据[3]。第一个元素 data[0] 必须是一个 BYTE,具有非常具体的值,如下所示:

typedef enum
{
SET_ACCURACY=0x01,
SET_RETRACT_LIMIT=0x02,
SET_EXTEND_LIMT=0x03,
SET_MOVEMENT_THRESHOLD=0x04,
SET_STALL_TIME= 0x05,
SET_PWM_THRESHOLD= 0x06,
SET_DERIVATIVE_THRESHOLD= 0x07,
SET_DERIVATIVE_MAXIMUM = 0x08,
SET_DERIVATIVE_MINIMUM= 0x09,
SET_PWM_MAXIMUM= 0x0A,
SET_PWM_MINIMUM = 0x0B,
SET_PROPORTIONAL_GAIN = 0x0C,
SET_DERIVATIVE_GAIN= 0x0D,
SET_AVERAGE_RC = 0x0E,
SET_AVERAGE_ADC = 0x0F,
GET_FEEDBACK=0x10,
SET_POSITION=0x20,
SET_SPEED= 0x21,
DISABLE_MANUAL = 0x30,
RESET= 0xFF,
}TYPE_CMD;

按原样,如果我设置data[0]=SET_ACCURACY,它不会将其设置为0x01,而是将其设置为1,这不是我想要的。 data[0] 在设置为 SET_ACCURACY 时必须取值 0x01。我如何使它不仅适用于 SET_ACCURACY,而且适用于所有其他值?

编辑:实际上这有效......我的代码中有一个不同的错误,我归因于此。对不起!

谢谢!

【问题讨论】:

  • 什么?! 0x011 是同一个数字!你什么意思? 0x01 只是数字1 的十六进制表示。
  • 是的,我就是这么想的......我需要再看看我的程序......也许我使用 typedef 不正确?
  • 不!我认为没有什么是不正确的。你得到的和你放入数组的东西是一样的。
  • 哇……我是个笨蛋……我一直都做对了……好吧。好的,谢谢。

标签: visual-c++ bytearray typedef


【解决方案1】:

data[0]=SET_ACCURACY 没有将其设置为 0x01,而是将其设置为 1

它将SET_ACCURACY的值分配给data[0],这意味着位00000001存储在地址&data[0]的内存中。 0x01 是这个字节的十六进制表示,1 是它的十进制表示。

【讨论】:

    猜你喜欢
    • 2020-11-10
    • 2015-07-19
    • 1970-01-01
    • 2021-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多