# c编程十六进制数据输出格式_使用C编程语言处理十六进制值

c编程十六进制数据输出格式

Hexadecimal value has 16 alphanumeric values from 0 to 9 and A to F, with the base 16. (Read more about Computer number systems), here we will learn how to work with hexadecimal values in c programming language?

## 在C编程中十六进制数的表示 (Representation of Hexadecimal numbers in C programming)

In C programming language, a Hexadecimal number is represented by preceding with "0x" or "0X", thus the value in Hexadecimal can be written as "0x64" (which is equivalent to 100 in Decimal).

### 在变量中分配十六进制数 (Assigning the Hexadecimal number in a variable)

There is no special type of data type to store Hexadecimal values in C programming, Hexadecimal number is an integer value and you can store it in the integral type of data types (char, short or int).

Let suppose, we have two values in Hexadecimal "64" (100 in Decimal) and "FAFA" (64250 in Decimal).

We are storing "64" in an unsigned char variable (64 is small value and can be stored with in a Byte) and "FAFA" in the int variable.

Consider the following statements

unsigned char a=0x64;

unsigned char b=0xFAFA;


### 以十六进制格式打印数字 (Printing the number in Hexadecimal format)

To print integer number in Hexadecimal format, "%x" or "%X" is used as format specifier in printf() statement.

"%x" prints the value in Hexadecimal format with alphabets in lowercase (a-f).

“％x”以十六进制格式输出值，并使用小写字母(af)。

"%X" prints the value in Hexadecimal format with alphabets in uppercase (A-F).

“％X”以十六进制格式打印值，并使用大写字母(AF)。

Consider the code, which is printing the values of a and b using both formats

int main()
{
unsigned char a=0x64;
int b=0xFAFA;

printf("value of a: %X [%x]\n",a,a);
printf("value of b: %X [%x]\n",b,b);

return 0;
}



Output

    value of a: 64 [64]
value of b: FAFA [fafa]



"%x" or "%X" is used with scanf() statement to read the value from the user.

scanf()语句使用“％x”或“％X”从用户读取值。

Consider the following code

#include <stdio.h>
int main()
{
unsigned char a;
int b;

printf("Enter value of a: ");
scanf("%x",&a);
printf("Enter value of b: ");
scanf("%x",&b);

printf("Value of a: Hex: %X, Decimal: %d\n",a,a);
printf("Value of b: Hex: %X, Decimal: %d\n",b,b);

return 0;
}




Output

    Enter value of a: 64
Enter value of b: FAFA
Value of a: Hex: 64, Decimal: 100
Value of b: Hex: FAFA, Decimal: 64250



### 通过分配十六进制值来声明整数数组 (Declaring integer array by assigning hexadecimal values)

Consider the following example, where integer array is declaring with the Hexadecimal values and printing in both formats Decimal and Hexadecimal.

#include <stdio.h>
int main()
{
int arr[]={0x64, 0xAB0, 0xA0A0, 0xFAFA, 0x100};
int i;

printf("Array elements are\n");
for(i=0;i<5;i++)
printf("Decimal: %d, Hex: %X\n",arr[i],arr[i]);

return 0;
}



Output

    Array elements are
Decimal: 100, Hex: 64
Decimal: 2736, Hex: AB0
Decimal: 41120, Hex: A0A0
Decimal: 64250, Hex: FAFA
Decimal: 256, Hex: 100



c编程十六进制数据输出格式

01-27 1280
07-20 9万+
04-05 7642
08-29 1318
06-21 6万+
05-17 2159
05-20 2072
05-16 1754
09-07 1万+
11-29 6120
08-16 140

• 非常没帮助
• 没帮助
• 一般
• 有帮助
• 非常有帮助