c++ - 在字符数组中搜索多次出现的值,然后列出出现次数。 VC++

标签 c++ arrays

我正在尝试编写一个小程序,为从 ASCII 字符数组中提取的十六进制和二进制值生成奇偶校验位。我总共有 3 个字符数组。例如:

const char *caASCII[] = {"A", "B", "C", ...};

const char *caASCIIBinary[] = {"01000001", "01000010", "01000011", ...};

const char *caASCIIHex[] = {"41", "42", "43", ...};

因此,我键入“A”,它会在二进制和十六进制数组中找到相应的值,然后显示它们。我有一个执行搜索的线性搜索函数,它工作正常。

我想知道是否可以计算,例如,“1”在一个二进制值中出现的次数,然后据此判断(如果 1 的数量是偶数或奇数)添加一个“0”或二进制值末尾的“1”。我想我必须将十六进制值除以 2 才能确定它是偶数还是奇数。

我开始认为我必须将数组更改为不同的类型,可能是整数。关于我如何处理这个问题有什么建议吗?

最佳答案

三个数组的想法是一个巨大的废话:那些信息很容易通过很少的操作计算出来。 例如,要知道二进制表示中“1”的个数:

  int bits_on(char yourchar) {
    int count = 0;
    while (yourchar > 0) {
      count += yourchar % 2;
      yourchar >>= 1;
    }
    return count;
  }

“偶数加1”

int newInt = yourChar << 1;
newInt += bits_on(yourchar) % 2 == 0 ? 1 : 0;

关于c++ - 在字符数组中搜索多次出现的值,然后列出出现次数。 VC++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/967524/

相关文章:

c++ - 在 Debian 7.0 中使用 libcrypto 使用 g++ 编译 c++ 程序

c++ - 如何协调将 header /源代码与模板分离的 C++ 习惯用法?

c++ - 编译问题 sigc++/gtkmm in own namespaces

php - 从 MySQL 查询构建多维 PHP 数组

c - C++ vector 的最佳 C 实现是什么?

ios - 包含结构的数组的哈希值

python - RabbitMQ 基础发布

c++ - 为什么编译器无法在 .cpp 文件中找到方法定义

arrays - 在 O(n*log(n)) 中找到一对具有给定和和乘积的数组元素

java - 如何从数组中获取 5 个数字的序列