bootgames 发表于 2012-10-24 10:49:21

程序里面把十进制数转换为十六进制

比如十进制6 16 160 260

worldly_guest 发表于 2012-10-24 11:07:27

uchar buff;
sprintf(buff, "%4X", 260);

ztrx 发表于 2012-10-24 11:53:59

http://hi.baidu.com/kxqnpwxrsyamuvr/item/faf3eeca76c1ee2c0831c6de

void dec_to_hex(int x)
{
   char *table = "0123456789abcdef";
   char array;
   array = '\0';
   int i = 7, num;
   num = x;
   if (x > 0)
   {
          memset(array,'0',8);
          while(x)
         {
            array = table;
            x = x / 16 ;
         }
   }
   else
   {
          memset(array,'1',8);
          int j;
          for(j=0; j<8; j++)
          {
               array = table;
               x >>= 4;
         }
   }
   printf("十进制数%d <======>对应十六进制为%s\n", num, array);
}

XA144F 发表于 2012-10-24 12:24:58

10进制的数字转换为16进制的数字?
10进制的数字转换为16进制的数字的字符串?
10进制的数字的字符串转换为16进制的数字?
10进制的数字的字符串转换为16进制的数字的字符串?

zpxa001 发表于 2012-10-24 12:30:25

十进制数转换为十六进制???{:shocked:}

bootgames 发表于 2012-10-24 13:30:03

我晕 我没说明白
没那么复杂
比如十进制数 a=260 转换为十六进制数就是 k=a/256a%256

XA144F 发表于 2012-10-24 13:39:33

看来你还是迷糊啊……
比如你说的a=260,在内存中存放的时候就是100000100了,就是0x104,还需要你转换?在单片机里10进制和16进制是没有差别的吧?你认为是260,编译器和单片机认为就是0x104

bootgames 发表于 2012-10-24 13:43:19

XA144F 发表于 2012-10-24 13:39 static/image/common/back.gif
看来你还是迷糊啊……
比如你说的a=260,在内存中存放的时候就是100000100了,就是0x104,还需要你转换?在 ...

我需要把取到的十进制数值用十六进制显示出来。

scpaslb 发表于 2012-10-25 11:06:02

难道你是在做1302??

shotstar 发表于 2012-10-24 10:49:22

本帖最后由 shotstar 于 2012-10-25 11:24 编辑

bootgames 发表于 2012-10-24 13:30 static/image/common/back.gif
我晕 我没说明白
没那么复杂
比如十进制数 a=260 转换为十六进制数就是 k=a/256a%256 ...

你不做出来了啊
<255
6:      6/166%16    ->0X06
16    16/16 16%16   ->0X10
>255且<65536
      
260 260/256 = 1260%256/16= 0 260%16=4    ->0X104
   

……………………   

l435799304 发表于 2012-10-25 20:52:16

      扯淡
页: [1]
查看完整版本: 程序里面把十进制数转换为十六进制