【问题标题】:binary integer to integer array in c二进制整数到c中的整数数组
【发布时间】:2013-02-07 14:23:28
【问题描述】:

我有一个变量 unsigned int x = 0b0011 我怎样才能使它成为无符号整数数组,比如 y[0]=0 ; y[1]=0; y[2]=1; y[3]=1;

【问题讨论】:

  • 这是一个 int 0b0011
  • 你总是知道二进制表示的位数还是任意的?
  • Noor:如有必要,我可以将变量定义为“int”。 @Jordan Kaye:我只需要从 GPIO 输出二进制值,我需要知道整数值作为二进制文件。所以我可以说这不是任意的

标签: c arrays integer


【解决方案1】:

移位和按位运算。

unsigned x = 0b0011; // yap this is a GNU extension, it doesn't always work even with GCC

const size_t intsize = sizeof(x) * CHAR_BIT; // go go indepency-of-sizeof(int)!

unsigned bits[intsize]; // that's why we love constexprs

int i, j;
for (i = intsize - 1, j = 0; i >= 0; i--, j++) { // and the comma operator too
    bits[j] = (x >> i) & 0x1;
}

【讨论】:

    猜你喜欢
    • 2021-12-28
    • 2011-12-30
    • 2011-02-10
    • 2020-12-11
    • 2017-08-22
    • 2017-06-04
    • 1970-01-01
    • 1970-01-01
    • 2021-01-27
    相关资源
    最近更新 更多