【问题标题】:Conversion from unsigned int array to unsigned char array从 unsigned int 数组转换为 unsigned char 数组
【发布时间】:2013-05-16 11:33:06
【问题描述】:

我不知道如何以一种好的方式将 unsigned int 数组转换为 unsigned char 数组。我想收到一些建议。

更清楚地说,我的问题是我有一个函数可以读取内存,将数据放入 unsigned int 数组。我想获取这些数据并转换为 unsigned char 以放入,例如串行端口。

谢谢

【问题讨论】:

  • 那是相当模糊的。你想达到什么目的?
  • 你真正想做什么?如果你想重新解释字节,一个简单的转换就足够了。如果要保留这些值(假设它们都在 [0; 255] 范围内),则必须编写一个循环并将所有内容复制到一个新数组中。

标签: c unsigned-integer unsigned-char


【解决方案1】:

您可以逐个元素地使用 uint 数组

for (i=0 ; i<arrayLength ; i++) processuChar((unsigned char) uintarray[i]);

或者你可以创建一个新数组并复制元素

unsigned int uintarray[N];
unsigned char uchararray[N];

for (i=0 ; i<N ; i++) uchararray[i] = (unsigned char)uintarray[i];

然后利用新的 uchararray 数组。

或者您更喜欢在复制之前动态分配新数组

unsigned char *uchararray = malloc(sizeof(unsigned char) * N);
for (i=0 ; i<N ; i++) uchararray[i] = (unsigned char)uintarray[i];

在这种情况下(动态),您必须在不再需要数组时释放它

free (uchararray);

【讨论】:

    猜你喜欢
    • 2012-05-06
    • 1970-01-01
    • 2012-04-28
    • 1970-01-01
    • 2014-12-27
    • 1970-01-01
    • 1970-01-01
    • 2016-04-19
    • 1970-01-01
    相关资源
    最近更新 更多