你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

高字节与低字节相互调换??

[复制链接]
qazplm3218 提问时间:2019-4-3 16:40 /
比如:a=1234 转换变成:a=3412  ???
收藏 评论11 发布时间:2019-4-3 16:40

举报

11个回答
zhao.zhao 回答时间:2019-4-4 13:39:51

高人
七哥 回答时间:2019-4-3 17:26:58
本帖最后由 toofree 于 2019-4-3 17:34 编辑

a=((a&0xff)<<8) | ((a&0xff00)>>8);

a=((a<<8)&0xff00) | ((a>>8)&0xff);

a= ((a%0x100)<<8) | (a/0x100);

a= ((a%0x100)*0x100) | (a/0x100);

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

一代睡神的崛起 回答时间:2019-4-3 17:25:21
很简单啊 设置三个变量,a,b,c.a=0x2345,b=(a&0xff00)>>8(高八位变低八位),c=(a&0xff)<<8(低八位变高八位),value=b|c;

评分

参与人数 1蝴蝶豆 +3 收起 理由
STMCU + 3

查看全部评分

edmundlee 回答时间:2019-4-3 20:37:56
你要换的是10进制数?

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

qazplm3218 回答时间:2019-4-4 07:31:04
谢谢!
aiherong 回答时间:2019-4-4 09:02:35
要是用汇编该有多简单:  AX=0x1234;    ECHG AH,AL; 此时AX=0x3412;

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

Kevin_G 回答时间:2019-4-4 10:12:10
搞不清是十进制还是十六进制
西点钟灵毓秀 回答时间:2019-4-4 10:27:05
用结构体+联合体

评分

参与人数 1蝴蝶豆 +1 收起 理由
STMCU + 1

查看全部评分

一代睡神的崛起 回答时间:2019-4-4 13:34:24
十进制也好弄啊,申明几个变量分别取整取余,然后顺序调换再组合起来不就OK了
STM1024 回答时间:2019-4-4 16:39:40
你到底是要用十六进制还是十进制的互换啊?十六进制的非常简单,十进制稍微麻烦一点点~

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

骆驼-350031 回答时间:2019-4-11 09:07:51
本帖最后由 骆驼-350031 于 2019-4-11 09:11 编辑

#include <stdio.h>

union SHORT_UN{
   unsigned char  BYTE[2];
   short unsigned int value;
};


int main(  )
{

     union  SHORT_UN    short_int;
    unsigned char temp;

    short_int.value = 0x1234;

    printf("交换之前  0x%x\n", short_int.value);

     temp = short_int.BYTE[0];
     short_int.BYTE[0]=short_int.BYTE[1];
    short_int.BYTE[1]= temp;

      printf("交换之后  0x%x\n", short_int.value);

  return 0;
}

只需要简单交互就可以了。效率比较高。在VC++6.0上编译通过。


评分

参与人数 1蝴蝶豆 +3 收起 理由
STMCU + 3

查看全部评分

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版