十六进制 十进制 转换

当 进制之间的转换结果需要处理时,转来转去就显得比较繁杂,在此有一技巧。

问题: 输入 四个 0-255 之间的 ints, 分别代表 ARGB(16进制), 输出 一个 int 值

逻辑:分别将 这四个值 转化成 16进制 的字符,再将 它们 连接成一个字符,然后转化成 一个 int 值。

首先 申明 如下 结构:

union tt
{
struct
{
unsigned char r;
unsigned char g;
unsigned char b;
unsigned char a;
};
unsigned int data;
};

使用:

tt t;
t.a = 0;
t.r = 255;
t.g = 192;
t.b = 255;        // 0,255,192,255 分别 是输入的 int 值.                                                                    
CValue = t.data;      //这就是最终结果...

传统方法:
//CString aStr;
//aStr.Format("%x", 0);

//CString rStr;
//rStr.Format("%x", 255);

//CString gStr;
//gStr.Format("%x", 192);

//CString bStr;
//bStr.Format("%x", 255);

//CString resultStr("");
//resultStr = aStr + rStr +gStr +bStr;

//CValue = _tcstol(resultStr,  NULL,  16);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值