标题:输入一个4字节的变量,拆成4个1字节的变量输出
只看楼主
爱的轩辕氏
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:71
专家分:157
注 册:2011-5-8
结帖率:93.75%
已结贴  问题点数:20 回复次数:6 
输入一个4字节的变量,拆成4个1字节的变量输出
示例
Please Enter 4-byte Value:
0x[提示符]12345678
Result Is:
0x12
0x34
0x56
0x78
使用移位符>>和<<完成这个题目(注意)
搜索更多相关主题的帖子: Enter 
2011-05-09 11:19
爱的轩辕氏
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:71
专家分:157
注 册:2011-5-8
得分:0 
各位大虾,我不会使用移位符完成,请指教,
2011-05-09 11:20
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
得分:10 
基本原则,左移一位相当于乘2,右移一位相当于除2。比如n=2,那么n<<1=4,n>>1=1。记住这个原则就可以了。

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-05-09 12:06
爱的轩辕氏
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:71
专家分:157
注 册:2011-5-8
得分:0 
回复 3楼 ansic
  不会编代码我,哎
2011-05-09 12:27
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
得分:0 
在汇编里, 使用rol指令, 很简单的, 不过我还没有学到位运算。

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-05-09 12:33
zaixuexi
Rank: 12Rank: 12Rank: 12
来 自:上海
等 级:火箭侠
威 望:8
帖 子:858
专家分:3233
注 册:2010-12-1
得分:10 
程序代码:
void cc(unsigned int a)
{

#define HALF_INT      (sizeof(int) << 2)
#define HALF_SHORT    (sizeof(short) << 2)
#define MASK_H        0xff00ff00
#define MASK_L        0x00ff00ff

    a = (a << HALF_INT) | (a >> HALF_INT);
    a = ((a << HALF_SHORT) & MASK_H)  | ((a >> HALF_SHORT) & MASK_L);
    do {
        printf("0x%x\n",(unsigned char)(a));
    } while (a>>=HALF_SHORT);
}
希望对你有帮助
收到的鲜花

技术问题,请不要以短消息方式提问
2011-05-09 14:15
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
得分:0 
回复 6楼 zaixuexi

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-05-09 15:55



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-339265-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.721032 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved