十进制怎么转化成十六进制

2019-07-15 08:40发布

int a = 15;
int b = 8;
int z;
a和b怎么转成 z = 0xf8;(z = 0xab)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
12条回答
仰恩湖
2019-07-17 05:26
z是整形的,如果值是248,那他在内存中就是0x000000F8。你应该把他最低的8位取出来,然后再分别取两次4位到两个变量中,最后把两个变量的值转换成可见字符,这两个变量的最大值不会超过15。不知有没有帮助 :)

uint8_t test(void)
{
        uint8_t hi4 = 0;
        uint8_t lo4 = 0;
       
        uint8_t z = 248;
       
        hi4 = (z & 0xF0) >> 4;       
        lo4 = (z & 0x0F);       
       
        if(hi4 >= 'A')
                hi4 -= (10 - 'A');
        else
                hi4 += '0';
       
        if(lo4 >= 'A')
                lo4 -= (10 - 'A');
        else
                lo4 += '0';
       
        //printf("0x%0x", z);
        //printf("0x%c%c", hi4, lo4);
}

一周热门 更多>