【问题标题】:How do you step through an unisigned int?你如何单步执行一个无符号整数?
【发布时间】:2014-03-15 23:06:31
【问题描述】:

我正在尝试遍历 unsigned int 并打印 32 位数字中每个位的 0 和 1 值。因此,例如,我正在尝试编写类似于以下内容的代码:

typedef unsigned int uint;
int main(){
     unit u = 0x21062910;
     int N=0; 
     for(int i=0; i < 32; i++){
           N = u[i]; 
           cout << N; 
     }

我知道我无法像这样访问各个位,但希望这能让您了解我想要完成的工作。所需的输出类似于:0010 0001 0000 0110 0010 1001 0001 0000

【问题讨论】:

    标签: variables integer int typedef unsigned


    【解决方案1】:

    将倒数第三行改为

               N = u & (1 << i); 
    

    也就是说,一共:

    typedef unsigned int uint;
    int main(){
         uint u = 0x21062910;
         uint N=0; 
         for(int i=0; i < 32; i++){
               N = u & (1 << i); 
               cout << N; 
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-21
      • 1970-01-01
      • 2015-02-03
      相关资源
      最近更新 更多