c語言位元組交換
發布時間: 2023-06-15 19:56:38
Ⅰ c語言 對位元組的高位和低位進行互換!
可以直接用位運算:按位與,按位或,移位等
#include "stdio.h"
int main()
{
unsigned char tmp1,tmp2;
printf("please input a char: ");
scanf("%c", &tmp1);
tmp2=
((tmp1&0x01)<<7)
|((tmp1&0x02)<<5)
|((tmp1&0x04)<<3)
|((tmp1&0x08)<<1)
|((tmp1&0x10)>>1)
|((tmp1&0x20)>>3)
|((tmp1&0x40)>>5)
|((tmp1&0x80)>>7);
printf("converted char is: %c\n", tmp2);
return 0;
}
Ⅱ c語言實現2個位元組的高低位轉化
2個位元組short
int
高低位轉化:
short
int
y=0x7f21;
y
=
(
(y
&
0xff00)
>>
8)
|
(
(y
&
0x00ff
)
<<
8);
printf("%#x",y);
-------------------------------
也可以利用
union
union
B2
{
short
int
i;
unsigned
char
c[2];
//
。。。任意兩位元組類型
}
;
union
B2
x;
unsigned
char
tmp;
x.i=0x1234;
tmp
=
x.c[0];
x.c[0]=x.c[1];x.c[1]=tmp;
//
也可以用上面的位運算方法交換高低端
printf("%#x\n",x.i);
//
union
方法特別適合4位元組8位元組
大端小端碼的轉換操作。
熱點內容