我不太清楚你的要求是什么。
在计算机里面,是以2进制的形式表示数据的,无论是用16进制来看还是10进制数来看,它都是同一个数。就比如2进制的11111111,那么用16进制表示是0xff,用10进制表示是256。
那假设现在R0 = 11111111,R1 = 11111111,它们合起来表示一个两字节的数0xFFFF(也就是10进制的65535),如果用R2,R3来存储你所希望转化后的结果,那么你希望R2和R3分别是多少呢?
C语言里面的10进制和16进制之间的转换,其实是指把数据转换成“字符串”的形式,
比如
unsigned char b = 0xFF; unsigned char b = 0xFF;
跟
unsigned char b = 256; unsigned char b = 256;
你说这两种表述,一个是16进制,一个是10进制,但是他们其实是一样的!因为对计算机来说,它们没有任何分别,都是
unsigned char b = 111111(2进制); unsigned char b = 111111(2进制);
而C语言里面常说的16进制转10进制,指的是把字符串或者数据转换成字符串。比如
把字符串 ‘f’,‘f’或者数据0xFF转换成字符串‘2’,‘5’,‘6’。
其中,‘f’,‘f’占两个字节的存储空间,0xFF占一个字节的存储空间,而‘2’,‘5’,‘6’占三个字节的存储空间。
取消
评论