社区
C语言
帖子详情
怎样将0x01 02 03 04转换成0x04 03 02 01
Ryoko7
2003-11-06 04:08:02
将形如0x01 02 03 04的整数转换成形如0x04 03 02 01
...全文
190
15
打赏
收藏
怎样将0x01 02 03 04转换成0x04 03 02 01
将形如0x01 02 03 04的整数转换成形如0x04 03 02 01
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sunstarstar
2003-11-06
打赏
举报
回复
打错字了!!(不好意思)
Caoyu015(酷鱼一代) 的解法有点问题,原题的不是整个颠倒,而是部分颠倒
sunstarstar
2003-11-06
打赏
举报
回复
Caoyu015(酷鱼一代) 的解法有点问题,原题的不是整个颠倒,二是部分颠倒
heartlove
2003-11-06
打赏
举报
回复
一条汇编指令可以解决四字节的顺序交换问题
TianGuangZao
2003-11-06
打赏
举报
回复
unsigned result; -> unsigned int result;
不小心漏掉。
TianGuangZao
2003-11-06
打赏
举报
回复
殊途同归,此题解法甚多,我也来现丑。
+--------------+
| +----+ |
| | | |
01 02 03 04
分别交换 01 04 和 02 03。
#include <stdio.h>
int main()
{
unsigned int value = 0x01020304;
unsigned result;
result = ((value & 0x000000ff) << 24) +
((value & 0x0000ff00) << 8 ) +
((value & 0x00ff0000) >> 8 ) +
((value & 0xff000000) >> 24);
printf("0x%p\n", result);
return 0;
}
lovenoend
2003-11-06
打赏
举报
回复
主要原理就是把他分解成8 Bit,然后交换
Paris_Luo
2003-11-06
打赏
举报
回复
bestfyj(笑俊) 正解
hujun614
2003-11-06
打赏
举报
回复
抱歉,语法生疏了,括号一大堆。
int ConvertInt(int nSrc){
int ntarg= 0;
int i;
for(i=0;i<4;i++){
ntarg = ntarg | (((nSrc >> (8*i)) & 0x00ff )<<(8*(3-i)));
}
return ntarg;
}
arfi
2003-11-06
打赏
举报
回复
#include <stdio.h>
void main(void)
{
int num = 0x7896f3e4;
char *p;
p = (char *)#
p[0] ^= p[3];
p[3] ^= p[0];
p[0] ^= p[3];
p[1] ^= p[2];
p[2] ^= p[1];
p[1] ^= p[2];
printf("%x\n", num);
}
短歌如风
2003-11-06
打赏
举报
回复
x = ((x >> 24) &0xff) | ((x >>8) & 0xff00) | ((x << 8) & 0xff0000) | (x << 24);
bestfyj
2003-11-06
打赏
举报
回复
vc 下编译通过
#include <stdio.h>
void main()
{
unsigned a=0x01020304;
unsigned b=0;
int i;
for(i=0;i<4;i++)
b+=(((a>>(8*i))&0xff)<<((3-i)*8));
printf("%x\n",b);
}
祝你顺利
fierygnu
2003-11-06
打赏
举报
回复
用个union,交换字节:0<->3、1<->2。
union
{
int i;
char chs[4];
};
SCUM
2003-11-06
打赏
举报
回复
说明白点看
Caoyu015
2003-11-06
打赏
举报
回复
int value = 0x01020304, value2 = 0;
int mask = 0x80000000, mask1 = 0x00000001;
for( int i = 31; i > 16; i-- )
{
value2 |= ( value & mask ) >> i;
value2 |= ( value & mask1 ) << i;
mask >>= 1;
mask1 <<= 1;
}
jnlon
2003-11-06
打赏
举报
回复
颠倒过来输出不就完了
笔试题C语言:有数组 char buf[]={0x
01
,0x
02
,0x
03
,0x
04
,0x05,0x06,0x07,0x08,0x09,0x0A}
笔试题C语言:有数组 char buf[]={0x
01
,0x
02
,0x
03
,0x
04
,0x05,0x06,0x07,0x08,0x09,0x0A}
0x
01
中0x表示的含义
16进制:0x
01
中的 0x 表示其是16进制,0x当标识使用,不参与进制的计算。1)如 0x
01
转换成
10 进制,只需要看 0x 后面的
01
。2)再比如 0x0f
转换成
10 进制,只需要看 0x 后面的 0f 即可,0f
转换成
10 进制为 15。 C语言、C++、Shell、Python、Java语言及其他相近的语言使用字首“0x”,例如“0x5A3”。开头的“0”令解析器更易辨认数,而“x”则代表十六进制(就如“O”代表八进制)。在“0x”中的“x”可以大写或小写。对于字符量C语言中则
单片机中0x00和0x
01
有什么区别
0x00=0,0x
01
=1,比如说P1=0x00,也就是给P1.0~P1.7端口赋低电平,P1=0x
01
,是P1.0为高电平,P1.1~P1.7为低电平. 这是十六进制的表示方法,
转换成
二进制分别是:0x00 = 0000 0000;0x
01
= 0000 00
01
,也就是单片机P口的八位P1.7~P1.0从低位到高位输出的电平。 ...
Qt下hex转字符串代码实现,例如{0x
01
,0x
02
,0x
03
}转“
01
02
03
“
hex转字符串代码实现,例如{0x
01
,0x
02
,0x
03
}转"
01
02
03
"
Java 学习笔记(0x
01
) 数据类型转换
1.java数据类型 4类8种 逻辑型(boolean) 实型(byte、short、int、long) 浮点型 (float、double)字符型(char) 2.boolean类型不能转换为其他的数据类型 3.容量小的类型自动转化为容量大的数据类型,容量大的数据类型转换为容量小的数据类型时需要加上强制转换符 4.byte、short、char在进行运算时,系统会自动将其转化为int型
C语言
70,024
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章