gpt4 book ai didi

c - c 编译器怎么说它们是十六进制值

转载 作者:行者123 更新时间:2023-11-30 18:58:56 24 4
gpt4 key购买 nike

我正在尝试编写校验和评估器。我写了下面的代码;

0xFF -
( (
0x10 + 0x01 +0x00+ 0x13+ 0xa2+ 0x00+ 0x40+ 0x4a+
0xfd + 0x15 + 0xff + 0xfe+ 0x00+ 0x08 +
( 1 + 30 ) +
( 2 + 30 )
)
& 0xFF
)

参见 ( 1 + 30 ) 和 ( 2 + 30 ) 行,它们被转换为十六进制值,但在加法时它们被转换,并且结果不是预期的。有没有办法说(1 + 30)是十六进制值我的c编译器兄弟?

最佳答案

如果您希望编译器使用 30作为十六进制值,然后用 0x 提及它。喜欢(0x1 + 0x30) + (0x2 + 0x30)

int a - 这里a可以存储+2^31的值至-(2^31-1) ,其范围不是 09a始终以二进制格式存储值。我们可以以任何格式打印它,如十进制、十六进制或八进制。 printf("%d, %x, %o", a, a, a);

所以如果你想使用变量 a代替 30 。像下面这样使用。

int a = 0x30; //or int a = 48; 48 is the decimal representation of 0x30
....
(0x1 + a)
....

不要与十六进制值混淆。它只是一个值的表示。如果你有一支 10 支笔,你可以这样说

  • 我有10十进制格式的笔
  • 我有0xA十六进制格式的笔
  • 我有12八进制格式的笔

关于c - c 编译器怎么说它们是十六进制值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14344487/

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