如何将十进制值转换为十六进制,然后在C编程中进行数学运算?我见过的每个将十进制转换为十六进制的示例都会创建一个数组,如果我这样做,我将无法进行数学运算。像这样的东西。 我只想了解如何进行十六进制数学C的基本思想。我有混合文件,我正在阅读。部分文件为十六进制,部分为十进制。所以第一步是将小数转换为十六进制。你显然不能做数学十六进制和十进制而不转换其中一个。我想将小数转换为十六进制。我发现转换的唯一两种方法是制作一个数组,你不能用char数组和%x选项用printf做数学然后你就不能用数学方式做数学
15 decimal to hex F
17 decimal to hex 11
F hex + 11 hex = 20
答案 0 :(得分:0)
首先,十进制或十六进制只是表示人类可读形式的数字。我的意思是:内部数字表示始终是相同的,但是当您printf
或scanf
时,您可能想要使用某些规则来使用户易于阅读。因此,没有完全相同的概念或“转换”,但有更好的格式和解析策略。
要以十六进制显示数字,您可以使用:
#include <stdio.h>
void main() {
int data = 29;
printf("%x\n", data); // just print data
printf("%8x\n", data); // print in 8 width and pad with blank spaces
printf("%08x\n", data); // print in 8 width and pad with 0's
}
如果你想要反转,即你有一个十六进制格式的数字的文本表示,你可以写:
int value;
sscanf("FF","%x",&value);
答案 1 :(得分:0)
在内部,所有内容都以二进制方式完成,但您可以按照自己喜欢的方式呈现:
#include <stdio.h>
int main() {
int a = 15;
int b = 17;
int c = a + b;
printf("%x + %x = %x\n",a,b,c);
return 0;
}