一个16位的数以4位为一组分割,然后将各部分相加获取最终结果。

一个16位的数以4位为一组分割,然后将各部分相加获取最终结果。例如10进制的数据48633的16进制为BDF9,具体表现形式为1011 1101 1111 1001,运算结果为1011 + 1101 + 1111 + 1001.

#include <iostream>

unsigned int convert10to16(unsigned int data)
{
    int qian = data / 8;
    int bai = (data % 8 ) / 4;
    int shi = (data % 8 ) % 4 / 2;
    int ge = data %2;

    return qian * 1000 + bai * 100 + shi * 10 + ge;
}

int main()
{
    unsigned int tmp = 48633;
    unsigned int data1 = tmp & 0xf;
    unsigned int data2 = (tmp & 0xf0) >> 4;
    unsigned int data3 = (tmp & 0xf00) >> 8;
    unsigned int data4 = (tmp & 0xf000) >> 12;

    std::cout << "data1:" << data1 << " data2:" << data2 << " data3:" << data3 << " data4:" << data4 << std::endl;

    unsigned int binaryData1 = convert10to16(data1);
    unsigned int binaryData2 = convert10to16(data2);
    unsigned int binaryData3 = convert10to16(data3);
    unsigned int binaryData4 = convert10to16(data4);
    
    std::cout << "binaryData1:" << binaryData1 << " binaryData2:"<< binaryData2  << " binaryData3:" << binaryData3 << " binaryData4:" << binaryData4 << std::endl;

    while(1);

    return 0;
}

// 1011 1101 1111 1001
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值