获取无符号字符中最后 2 位的值

发布于 2024-10-15 18:08:09 字数 370 浏览 2 评论 0原文

我有一个 unsigned char,我需要检查位 1 和 2 来查找状态。确定最后 2 位的最佳方法是什么?

我正在尝试执行 OR,但结果不正确。任何帮助将不胜感激。谢谢。

例子:

10101000 = off
10101001 = on
10101010 = error
10101011 = n/a

if(data_byte_data[0] | 0xfe)
    //01
else if(data_byte_data[0] | 0xfd)
    //10;
else if(data_byte_data[0] | 0xfc)
    //11
else if(data_byte_data[0] | 0xff)
    //00

I have an unsigned char and I need to check bits 1 and 2 to find the status. What is the best way to determine the last 2 bits?

I am attempting to perform an OR, but my results aren't correct. Any help would be appreciated. Thanks.

Example:

10101000 = off
10101001 = on
10101010 = error
10101011 = n/a

if(data_byte_data[0] | 0xfe)
    //01
else if(data_byte_data[0] | 0xfd)
    //10;
else if(data_byte_data[0] | 0xfc)
    //11
else if(data_byte_data[0] | 0xff)
    //00

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

懵少女 2024-10-22 18:08:09

我会做类似的事情:

v = data_byte_data[0] & 0x03;
switch (v)
{
case 0: ...
case 1: ...
case 2: ...
case 3: ...
}

I would do something like:

v = data_byte_data[0] & 0x03;
switch (v)
{
case 0: ...
case 1: ...
case 2: ...
case 3: ...
}
阳光下慵懒的猫 2024-10-22 18:08:09
switch(data_byte_dat[0] & 3) {
    case 0: puts("off");    break;
    case 1: puts("on");     break;
    case 2: puts(""error"); break;
    case 3: puts("N/A");
}
switch(data_byte_dat[0] & 3) {
    case 0: puts("off");    break;
    case 1: puts("on");     break;
    case 2: puts(""error"); break;
    case 3: puts("N/A");
}
挖个坑埋了你 2024-10-22 18:08:09
switch(data_byte_data[0] & 0x0003)
{
  case 0: 
    // 00
    break;

  case 1:
    // 01
    break;

  case 2:
     // 10
     break;

  case 3:
     // 11
     break;
}
switch(data_byte_data[0] & 0x0003)
{
  case 0: 
    // 00
    break;

  case 1:
    // 01
    break;

  case 2:
     // 10
     break;

  case 3:
     // 11
     break;
}
書生途 2024-10-22 18:08:09
switch ( val & 3 ) {
    case 0: // 00
    case 1: // 01
    case 2: // 10
    case 3: // 11
}
switch ( val & 3 ) {
    case 0: // 00
    case 1: // 01
    case 2: // 10
    case 3: // 11
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文