如何在C中将2个4位无符号数字组合为1个8位数字 [英] How to combine 2 4-bit unsigned numbers into 1 8-bit number in C

查看:93
本文介绍了如何在C中将2个4位无符号数字组合为1个8位数字的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有2个4位数字(X0X1X2X3和Y0Y1Y2Y3),我想将它们组合起来,以便创建一个像这样的8位数字:

I have 2 4-bit numbers (X0X1X2X3 and Y0Y1Y2Y3) and I want to combine them so that I would create an 8-bit number like that:

X0X1X2X3 
Y0Y1Y2Y3  => X0Y0X1Y1X2Y2X3Y3

我知道如何将它们连接起来以创建 X0X1X1X3Y0Y1Y2Y3 ,但我仍然坚持如何按照上述模式编写它们。

I know how to concatenate them in order to create the X0X1X1X3Y0Y1Y2Y3 but I am stuck on how to compose them in the pattern explained above.

有任何提示吗?

推荐答案

以下是执行此转换的相当直接的方法:

Here's a fairly direct way of performing this transformation:

uint8_t result;
result |= (x & 8) << 4;
result |= (y & 8) << 3;
result |= (x & 4) << 3;
result |= (y & 4) << 2;
result |= (x & 2) << 2;
result |= (y & 2) << 1;
result |= (x & 1) << 1;
result |= (y & 1) << 0;

这篇关于如何在C中将2个4位无符号数字组合为1个8位数字的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆