将整数转换为十六进制 [英] Convert integer to hexadecimal
问题描述
我只需要将整数转换为十六进制.实际上,我有一个存储十六进制值的char数组.
I just need to convert integer to hexadecimal. Actually I have a char array in which I am storing hex values.
int var;
var=[self getValue];
char hexValues[5];
hexValues[0]= 0x02;
hexValues[1]= 0x04;
hexValues[2]= [self getHexFromInt:var];
现在我认为getHexFromInt()
返回的hex int
值等于传递的十进制"var"
.它不会包含0x
..格式,这就是为什么我认为char数组会将其作为普通char接受的原因.因此,请建议我如何从getHexFromInt()
方法返回"0x
.."格式的字符.
Now what I think getHexFromInt()
returns an hex int
value equivalent to the passed decimal "var"
. It will not contain 0x
.. format that's why I think char array will accept it as normal char. So please suggest me how can I return a char in "0x
.." format from getHexFromInt()
method.
推荐答案
十六进制值是整数值
十六进制只是一种显示整数的方式.
hexadecimal is just a way of displaying an integer.
如果您要创建一个字符串,该字符串是整数的十六进制表示形式,则可以执行以下操作:
if you want to create a string that is the hexadecimal representation of an integer, you can go:
char hexStr[20];
sprintf(hexStr,"0x%x",var);
如果需要,您也可以将数字填充为零,方法是:%0(所需位数)x
you can also pad the number with zeros if you want, by going %0(total number of digits desired)x
例如:
int var = 0x123;
sprintf(hexStr,"0x%08x",var);
将导致hexStr被填充为"0x00000123"
will result in hexStr being filled with "0x00000123"
这篇关于将整数转换为十六进制的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!