【问题标题】:Convert some bytes from a unsigned char to int将一些字节从 unsigned char 转换为 int
【发布时间】:2014-04-28 17:17:14
【问题描述】:

我想将一些字节转换为 int。 到目前为止,这是我的代码:

unsigned char *bytePtr = (unsigned char *)[aNSDataFrame];

我想从这个无符号字符中取出 4 个字节: myFrame[10]myFrame[11]myFrame[12]myFrame[13] 并将它们转换为整数。

【问题讨论】:

    标签: ios objective-c c char int


    【解决方案1】:

    你可以的,

    int a;
    a=myframe[10];
    a=a<<8;
    a=a|myframe[11];
    a=a<<8;
    a=a|myframe[12];
    a=a<<8;
    a=a|myframe[13];
    

    这将创建包含这些字节的整数

    【讨论】:

    • 在 little-endian 平台上,myframe[13] 应该是最高有效字节。
    【解决方案2】:
    int val = *(const int*)&myFrame[10];
    

    【讨论】:

      【解决方案3】:
      int bytesToInt(unsigned char* b, unsigned length)
      {
      
          int val = 0;
      
          int j = 0;
      
          for (int i = length-1; i >= 0; --i)
          {
              val += (b[i] & 0xFF) << (8*j);
              ++j;
          }
          return val;
      }
      

      【讨论】:

      猜你喜欢
      • 2012-04-28
      • 2014-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-15
      • 2015-01-20
      • 2013-05-16
      相关资源
      最近更新 更多