将十进制转换为十六进制,然后执

时间:2014-03-27 08:38:57

标签: c hex

如何将十进制值转换为十六进制,然后在C编程中进行数学运算?我见过的每个将十进制转换为十六进制的示例都会创建一个数组,如果我这样做,我将无法进行数学运算。像这样的东西。 我只想了解如何进行十六进制数学C的基本思想。我有混合文件,我正在阅读。部分文件为十六进制,部分为十进制。所以第一步是将小数转换为十六进制。你显然不能做数学十六进制和十进制而不转换其中一个。我想将小数转换为十六进制。我发现转换的唯一两种方法是制作一个数组,你不能用char数组和%x选项用printf做数学然后你就不能用数学方式做数学

15 decimal to hex F
17 decimal to hex 11
F hex + 11 hex = 20

2 个答案:

答案 0 :(得分:0)

首先,十进制或十六进制只是表示人类可读形式的数字。我的意思是:内部数字表示始终是相同的,但是当您printfscanf时,您可能想要使用某些规则来使用户易于阅读。因此,没有完全相同的概念或“转换”,但有更好的格式解析策略。 要以十六进制显示数字,您可以使用:

#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;
}