c语言高低字节调换函数 c语言高低字节交换

C语言高低位互换操作

在看图形处理源码的时候有一段宏看不懂,就写了一个demo自己看了一下。

成都创新互联长期为上1000家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为安顺企业提供专业的成都网站建设、成都网站设计安顺网站改版等技术服务。拥有十多年丰富建站经验和众多成功案例,为您定制开发。

还是不大熟悉C语言的位操作。

这个宏挺有意思

注意 括号的位置很重要

((const uint8_t*)(x)) 这相当于把x所在的内存当做一段uint8类型的指针,索引x的第0位,因为是小端机,低位存低字节,所以[0]位存的是低字节,[1]位存的是高字节。

这样想的话,这个宏其实很简单了,就是把16位的无符号数,按照8位一个单位高低位互换

事实也证明如此,程序输出如下

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字节 大端小端码的转换操作。

C语言字节高低位互换- -,苦恼中

#define SWAP(A) (A0x01)7 | (A0x02) 5 | \

(A0x04)3 | (A0x08)1 | \

(A0x10)1 | (A0x20)3 | \

(A0x40)5 | (A0x80)7

优先及问题.

C语言 对字节的高位和低位进行互换!

可以直接用位运算:按位与,按位或,移位等

#include "stdio.h"

int main()

{

unsigned char tmp1,tmp2;

printf("please input a char: ");

scanf("%c", tmp1);

tmp2=

((tmp10x01)7)

|((tmp10x02)5)

|((tmp10x04)3)

|((tmp10x08)1)

|((tmp10x10)1)

|((tmp10x20)3)

|((tmp10x40)5)

|((tmp10x80)7);

printf("converted char is: %c\n", tmp2);

return 0;

}

一个字节高低位互换,C语言怎么写??是51单片机用。。。

题目很简单,但考察的是面试者的编程习惯和态度。今天闲来无事,多说几句。题目理解为高半字节和低半字节互换: 最好用宏定义 #define CHG_BYTE(bData) (((bData)4)) 注意,1、这种底层操作一般用宏可以增强程序的效率,避免不必要的函数调用开...3167


网站栏目:c语言高低字节调换函数 c语言高低字节交换
标题来源:http://myzitong.com/article/hidsjh.html