我有一個整數從函數返回:轉換整數值到十六進制字符串
int a = func();
例如,a = 236
。
我需要將此視爲整數的十六進制表示,並存儲在另一個可變其十進制表示,這樣,當印像這樣:
printf("%x", variable)
...的輸出應爲:
236
我有一個整數從函數返回:轉換整數值到十六進制字符串
int a = func();
例如,a = 236
。
我需要將此視爲整數的十六進制表示,並存儲在另一個可變其十進制表示,這樣,當印像這樣:
printf("%x", variable)
...的輸出應爲:
236
如果我明白你的需要,這個小代碼段會做
#include <stdio.h>
int main()
{
char num[128];
int a=236;
int hex;
sprintf(num, "0x%d", a);
sscanf(num, "%x", &hex);
printf("Hex: %x\n", hex);
}
輸出
Hex: 236
您好,謝謝回覆,這就是我的意思。 – Haris
所有的值將僅以二進制格式存儲。如果要使用%d
格式字符串打印十進制格式的打印值,或者如果要打印十六進制值,請使用%x
進行打印。
相同我們可以分配十進制和十六進制格式的值也。
int a = 236;
int b = 0x236;
printf("%d", a); //it will print 236
printf("%x", a); //it will print EC
printf("%d", b); //it will print 566
printf("%x", b); //it will print 236
我們可以打印同樣使用%o
格式字符串中的八進制形式存儲的二進制值。
究竟是你想做些什麼? 'int a = 0x236'似乎會達到你想要的結果。 –
你的意思是'int a = 0xec;'? –
@ ring0不,我需要它像0x236。我也從函數中獲取這個值給變量。 – Haris