【发布时间】:2015-04-11 07:10:49
【问题描述】:
在 C 中编程时,假设我有整数 h 作为十六进制值,整数 d 作为十进制数。我可以在 h 和 d 之间做加法或减法吗?或者它们必须在同一个数字系统中?
【问题讨论】:
-
试一试看看! ideone.com 是一个在线编译器,您无需安装任何东西即可使用它来运行这样的小测试程序。
-
我认为这个问题也混淆了“数字”和“价值”。 0x12、0d18、0o22 和 0b00010010 都是代表相同“值”的“数字”。添加时,您添加的是值,而不是数字。
-
您对“数字”和“表示”感到困惑。在内部,计算机具有“数字”。在外部(您看到和输入的内容)有“表示”。小数是一种表示。十六进制是一种表示。甚至“Q”也是一种表示。如果您输入十六进制表示和十进制表示(并以某种方式告诉计算机哪个),它们都会在内部转换为“数字”,您可以添加或减去或其他任何内容,而不必担心用于输入数字的表示是否是十六进制或十进制。
-
@HotLicks - 五秒太慢了! :p +1 反正
-
(当然,Pete 使用了“数字”和“值”而不是“表示”和“数字”,但这只是说明术语的定义不是很严格。但区别就在那里不管你怎么称呼他们。)