首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将m字节的数组拆分为n个字节的块

将m字节的数组拆分为n个字节的块
EN

Stack Overflow用户
提问于 2013-02-20 18:38:05
回答 8查看 5.7K关注 0票数 1

我在做一个处理大脑数据的程序。它所接收的值代表了目前8种公认的脑电图(脑电波)的大小.此数据值以8个3字节无符号整数的小endian格式输出.

下面是我的一段代码:

代码语言:javascript
复制
    if (extendedCodeLevel == 0 && code == ASIC_EEG_POWER_CODE)     
    {
         fprintf(arq4, "EXCODE level: %d CODE: 0x%02X vLength: %d\n", extendedCodeLevel, code, valueLength );
         fprintf(arq4, "Data value(s):" );
         for( i=0; i<valueLength; i++ ) fprintf(arq4, " %d", value[0] & 0xFF );
      }

是我的输出。代表脑电波的是一系列的字节。当前输出文件包含以下数据:

代码语言:javascript
复制
EXCODE level: 0x00  CODE: 0x83 vLength: 24
Data value(s): 16 2 17 5 3 2 22 1 2 1 0 0 0 4 0 0 3 0 0 5 1 0 4 8

我需要的是把上面的字节序列分成3字节块,来识别脑电图。波δ由前3字节序列表示,θ由下一个字节表示,依此类推。我该怎么做呢?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2013-02-20 18:45:11

是像这样吗?如果没有对齐,则不打印最后一个字节。需要它们吗?

代码语言:javascript
复制
for( i=0; i<valueLength; i+=3 ) fprintf(arq4, "%d %d %d - ", value[i] & 0xFF,
                                                             value[i+1] & 0xFF,
                                                             value[i+2] & 0xFF );
票数 1
EN

Stack Overflow用户

发布于 2013-02-20 19:04:12

假设您知道您的输入始终是八个三位整数,那么您所需要的就是一个简单的循环,从输入中读取三个字节,并将它们写成一个四字节值。最简单的方法是将输入作为一个字节数组,然后以三组方式从这个数组中提取字节。

代码语言:javascript
复制
// Convert an array of eight 3-byte integers into an array
//  of eight 4-byte integers.
void convert_3to4(const void* input, void* output)
{
   uint32_t   tmp;
   uint32_t*  pOut = output;
   uint8_t*   pIn = input;
   int        i;

   for (i=0; i<24; i+=3)
   {
      tmp  = pIn[i];
      tmp += (pIn[i+1] << 8);
      tmp += (pIn[i+2] << 16);
      pOut[((i+2) / 3)] = tmp;
   }
}
票数 3
EN

Stack Overflow用户

发布于 2013-02-20 19:00:25

将8个3字节的小endian字元转换为8个4字节的整数非常简单:

代码语言:javascript
复制
for( int i = 0; i < 24; ++i )
{
    output[ i & 0x07 ] |= input[ i ] << ( i & 0x18 );
}

我认为(未经测试的)代码可以做到这一点。假设输入是一个24条目字符数组,而输出是一个8条目int数组.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14987461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档