16进制转10进制
内存中,以*p所指的地址已存放4个字节16进制数
如何转换成10位(已知小于等于10位)10进制数?不足10位前面补零,请问如何操作?谢谢!
[解决办法]
内存中的数据都是二进制的
你看到的多少进制都是显示给你的结果罢了
printf( "%0*d ",10,*p);
[解决办法]
1.16进制转换成10进制
2.补零的话可以考虑转换成字符数组,
[解决办法]
用long转换
[解决办法]
sprintf( "%0*d ",10,*p);
[解决办法]
p指向的是整形数据
%d是输出内存中的整形数据
%0*d 是输出指定长度的整形数据,位数不够前面补领, 位数由第一个参数给定
这里的第一个参数是10
刚好符合你的要求
[解决办法]
你要写到数组中就:
char dst[10];
sprintf(dst, "%0*d ",10,*p);