【问题标题】:how to increment/decrement Hexadecimal value in C如何在C中增加/减少十六进制值
【发布时间】:2015-01-27 23:31:23
【问题描述】:

我正在尝试使用十六进制创建一个计数器,我知道这可以很容易地使用小数来完成,但是是否可以在十六进制中执行此操作,或者在十进制中是否相同?

会这样吗?

myhex = 0x00;

myhex++;

还是会以完全不同的方式完成?

如果您问为什么使用十六进制,因为这是针对 MCU 的,而对我来说,控制 MCU IO 的最佳方式是使用十六进制。

【问题讨论】:

  • 变量不包含“十六进制数”,它只是一个数字
  • 澄清一下:十六进制只是一个值的表示。因此,您可以使用与使用十进制值(以 10 为底)完全相同的十六进制值。
  • 感谢您提供这些宝贵的信息。 :)

标签: c hex increment


【解决方案1】:

是的,如果您尝试一下,您会看到,numberhexoctaldecimal 没有区别!

举个例子:

#include <stdio.h>

int main() {

    int myhex = 0x07;
    int myOct = 07;
    int myDec = 7;

    printf("Before increment:\n");
    printf("Hex: %x\n", myhex);
    printf("Oct: %o\n", myOct);
    printf("Dec: %d\n", myDec);

    myhex++;
    myOct++;
    myDec++;

    printf("After increment:\n");
    printf("Hex: %x\n", myhex);
    printf("Oct: %o\n", myOct);
    printf("Dec: %d\n", myDec);


  return 0;

}

输出:

Before increment:
Hex: 7
Oct: 7
Dec: 7

After increment:
Hex: 8
Oct: 10
Dec: 8

【讨论】:

  • 谢谢!我以前从未在 C 中真正使用过那么多的十六进制,并且一直认为增量仅适用于十进制值而不适用于二进制或十六进制,感谢您启发我。 :)
  • @magicianIam 欢迎您!祝你有美好的一天:D(顺便说一句:用更好的例子更新了我的答案!)
猜你喜欢
  • 2012-10-07
  • 2012-05-27
  • 2014-12-21
  • 1970-01-01
  • 2010-10-05
  • 2021-09-15
  • 1970-01-01
  • 2022-12-05
  • 2017-03-26
相关资源
最近更新 更多