MaNa Asked:2020-11-08 15:53:29 +0000 UTC2020-11-08 15:53:29 +0000 UTC 2020-11-08 15:53:29 +0000 UTC 类型转换“10101”->B10101 772 有一个数组: byte customChar[8] = { B00000, B00000, B00000, B00000, B00000, B00000, B00000, B00000 }; 在其中一个函数中,我收集了一个类似"10101". 有没有一种函数或方法可以将此字符串B10101作为元素添加到数组中customChar? c++ 2 个回答 Voted Best Answer αλεχολυτ 2020-11-08T19:29:13Z2020-11-08T19:29:13Z 要将字符串给定的数字转换为特定的数值,您可以使用std::stoior之类的函数std::strtol,其中您还需要指定数字系统,在当前情况下是2. 第一个函数需要对 C++11 标准的支持,第二个函数在没有它的情况下也可以工作: #include <cstdlib> byte value = static_cast<byte>(std::strtol("10001", NULL, 2)); 转换后,您可以将值写入所需的数组单元格: customChar[index] = value; Vanyamba Electronics 2020-11-09T07:21:38Z2020-11-09T07:21:38Z typedef unsigned char bin_t; void binToString(bin_t number, char *result) { result[0] = 'B'; for( bin_t n = sizeof(bin_t); n > 0; --n) { result[sizeof(bin_t) - n + 1] = (number & (1 << (n - 1))) ? '1' : '0'; } result[sizeof(bin_t) + 1] = 0; } ... char str[sizeof(bin_t)+2]; bin_t number = 0b0101001; binToString(number, str); std::cout << str;
要将字符串给定的数字转换为特定的数值,您可以使用
std::stoior之类的函数std::strtol,其中您还需要指定数字系统,在当前情况下是2. 第一个函数需要对 C++11 标准的支持,第二个函数在没有它的情况下也可以工作:转换后,您可以将值写入所需的数组单元格: