【问题标题】:c++ - Convert an int array of 8 positions to charc++ - 将 8 个位置的 int 数组转换为 char
【发布时间】:2016-10-11 00:40:32
【问题描述】:

我有一个代表 8 位的 8 个位置的 int 数组。

int zBits[8]={0, 1, 1, 1, 1, 0, 1, 0};

zBits 数组是以位为单位的字符“z”(十六进制中的“7a”)(http://www.utf8-chartable.de/)。

如何使用 c++ 将这个 int 数组 (zBits) 转换为 "z" 字符?

【问题讨论】:

    标签: c++ c++11 byte bit


    【解决方案1】:

    最直接的方法是直接:

    char z = (zBits[7]     ) |
             (zBits[6] << 1) |
             (zBits[5] << 2) |
             (zBits[4] << 3) |
             (zBits[3] << 4) |
             (zBits[2] << 5) |
             (zBits[1] << 6) |
             (zBits[0] << 7);
    

    如果你愿意,你可以将它改写成一个稍微短一些的循环。

    【讨论】:

      猜你喜欢
      • 2014-07-25
      • 2014-03-02
      • 2011-08-30
      • 2013-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-09
      • 1970-01-01
      相关资源
      最近更新 更多