将char *转换为uint8_t:(C ++)

问题描述 投票:0回答:1

说我有一个看起来像这样的数组:{'0b00011000','0b10001000'}如何将数组中的每个元素转换为uint8_t并将其输出保持为二进制格式。 (例如'0b10001000'== 0b10001000)。

是否有可以颠覆此功能的功能,或者我必须自行制定功能?

ps.s。我在投射时遇到了“精度丢失”错误,当我绕开它时,显然会失去精度。

c++ arrays char unsigned
1个回答
0
投票

您可以简单地做

uint8_t out = 0;
for(int i=0; i<8; i++)
    if(arr[i])
        out += pow(2, i);

在性能方面,当然不是最好的,但是如果我理解这个问题,它应该起作用。但是,如果您确实担心性能,则应该研究为什么将char的值存储到由8个字符组成的数组中。

© www.soinside.com 2019 - 2024. All rights reserved.