64,643
社区成员
发帖
与我相关
我的任务
分享
unsigned char i = 0x18;
unsigned char result = ((i & 0xf) * 10 + (i >> 4));//如果是10进制的81
#include<stdio.h>
#include<stdlib.h>
unsigned char func(unsigned char val)
{
union my_union
{
unsigned char uch;
struct
{
unsigned char low : 4;
unsigned char hig : 4;
};
} ;
union my_union mu = {val};
return ((mu.low << 4) | mu.hig);
}
int main()
{
unsigned char i = 0x81;
printf("%x\n", func(i));
system("pause");
return 0;
}
byte i=0x18;
int h4bit = i&0x0f;
int l4bit = (i&0xf0)>>4;
int result = l4bit || h4bit>>4;
这就是LZ要的结果?
byte i =0x18;
int h4bit = i&0x0f;
int l4bit = (i&0xf0)>>4;
CString sTemp;
sTemp.Format("%d%d",h4bit,l4bit);
int result = atoi(sTemp);
sTemp.Format("%d",result);
MessageBox(sTemp);
//result = 81
byte i = 0x18;
byte result = ((i >> 4) | (i << 4));