gpt4 book ai didi

C HEX 存储、显示和操作

转载 作者:行者123 更新时间:2023-11-30 18:02:19 28 4
gpt4 key购买 nike

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

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 ;

这会导致值 2,而它应该类似于 11111113。

最佳答案

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

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

关于C HEX 存储、显示和操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9226811/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com