C HEX商店,展示和展示操纵

时间:2012-02-10 11:07:57

标签: c formatting hex

这就是我声明我的整数数组的方式:

int registers[16];

这就是我填充数组的方式:

 void fill_registers()
{
registers[0] = 0 ; registers[1] = 0x11111111; registers[2] = 0x22222222;
registers[3] = 0x33333333; registers[4] = 0x44444444; registers[5] = 0x55555555;
registers[6] = 0x66666666; registers[7] = 0x77777777; registers[8] = 0x88888888;
registers[9] = 0x99999999; registers[10] = 0xAAAAAAAA; registers[11] = 0xBBBBBBBB;
registers[12] = 0xCCCCCCCC; registers[13] = 0xDDDDDDDD; registers[14] = 0xEEEEEEEE;
registers[15] = 0xFFFFFFFF;
}

这就是我用十六进制格式将它们打印出来的方式......

void print_all_registers()
{int i = 0 ;
    for(i= 0 ;i < 16 ; i++)
    {
        printf("REG %d : %x \t %d \n ", i, registers[i],registers[i]);
    }
}

唯一的问题是它无法正常工作,我只是不断获取价值。

我基本上必须能够加上+减去寄存器值,例如。 +2到11111111 另一个问题是在打印时它还必须以8位数字打印 00000001而不仅仅是1.我看了很多教程,但似乎找不到任何帮助。

我只是不明白为什么它不起作用。这是一个如何不起作用的例子。如果我这样做:

registers[1] = registers[1] + 2 ;

当它应该是11111113时,这将导致值为2。

1 个答案:

答案 0 :(得分:0)

您没有显示足够的代码。但要为0填充一个值,请执行以下操作:

printf("REG %d: %08x\n", i, registers[i]);