将数组转换为字符串Nesc

将数组转换为字符串Nesc,c,nesc,C,Nesc,我想将uint8\u t数组转换为NesC中的uint32\u t 有人知道我怎么做吗?如果您想将源代码中的单个uint8\t转换为目标代码中的单个uint32\t,实际上非常简单。只需创建目标数组,并在循环中复制值: uint8_t *source; size_t source_count; /* Number of entries in the source */ uint32_t *dest = malloc(sizeof(*dest) * source_count); for (

我想将
uint8\u t
数组转换为NesC中的
uint32\u t


有人知道我怎么做吗?

如果您想将源代码中的单个
uint8\t
转换为目标代码中的单个
uint32\t
,实际上非常简单。只需创建目标数组,并在循环中复制值:

uint8_t *source;
size_t   source_count;  /* Number of entries in the source */

uint32_t *dest = malloc(sizeof(*dest) * source_count);
for (int i = 0; i < source_count; i++)
    dest[i] = source[i];
uint32_t bytes_to_word(const uint8_t *bytes)
{
   size_t i;
   uint32_t out = 0;

   for(i = 0; i < 4; ++i)
   {
     out <<= 8;
     out |= bytes[i];
   }
   return out;
}
uint8_t*源代码;
大小\u t来源\u计数;/*源中的条目数*/
uint32_t*dest=malloc(sizeof(*dest)*来源计数);
对于(int i=0;i
你的标题提到字符串,但你的问题文本没有。这令人困惑

如果有四个8位整数,可以将它们合并为一个32位整数,如下所示:

const uint8_t  a = 1, b = 2, c = 3, d = 4;
const uint32_t big = (a << 24) | (b << 16) | (c << 8) | d;
换句话说,
a
被认为是最高有效字节,
d
被认为是最低有效字节

如果您有一个数组,当然可以在循环中执行此操作:

uint8_t *source;
size_t   source_count;  /* Number of entries in the source */

uint32_t *dest = malloc(sizeof(*dest) * source_count);
for (int i = 0; i < source_count; i++)
    dest[i] = source[i];
uint32_t bytes_to_word(const uint8_t *bytes)
{
   size_t i;
   uint32_t out = 0;

   for(i = 0; i < 4; ++i)
   {
     out <<= 8;
     out |= bytes[i];
   }
   return out;
}
uint32字节到字(const uint8字节)
{
尺寸i;
uint32_t out=0;
对于(i=0;i<4;++i)
{

我找到的解决方案是使用函数:

void * memcpy ( void * destination, const void * source, size_t num );
void * memset ( void * ptr, int value, size_t num );
还有一个功能:

void * memcpy ( void * destination, const void * source, size_t num );
void * memset ( void * ptr, int value, size_t num );

在我的代码中,我使用memcpy,它工作得很好。感谢所有回答我问题的人,我对NesC一无所知,但是源数组中的每个
uint8\u t
是否应该转换为目标数组中的单个
uint32\u t
?或者源数组中的四个
uint8\u t
应该组合为单个
uint32\u t
in目的地?是的,这就是我的想法。就像在C中,我想把一个整数数组转换成一个整数。那么,呃,你为什么评论说Joachim和我的答案都有用,当它们做不同的事情时?让人困惑。谢谢你的解释。我用了一个很难理解的词来解释我的需要。这对我有很大帮助。非常感谢