求教下

codejian 2009-12-19 11:05:37


#include <iostream>
using namespace std;

int main() {
char ch1 = 0, ch2 = 0, ch3 = 0, ch4 = 0;
cout << "Enter four characters: ";
cin >> ch1 >> ch2 >> ch3 >> ch4;

unsigned int packed = ch1;
packed = (((((packed << 8) | ch2) << 8) | ch3) << 8) | ch4;
cout << "Value of packed characters: " //这里的两行看不懂是什么意思..
<< std::hex << std::showbase << packed << endl;

unsigned int mask = 0xff;
ch1 = packed & mask;
ch2 = packed >> 8 & mask;
ch3 = packed >> 16 & mask;
ch4 = packed >> 24 & mask;
cout << "Characters in reverse order are: " //题目意思明白,但是程序不懂..请懂的指教下.
<< ch1 << ch2 << ch3 << ch4 << endl;;
return 0;

}
...全文
72 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
codejian 2009-12-20
  • 打赏
  • 举报
回复
谢谢两位.
codejian 2009-12-19
  • 打赏
  • 举报
回复
把楼上提供的地址里面的资料看完了。那几个按位运算的知识我都接触了,但是还是无法理解程序表达的意思,还请再次指教,
unsigned int packed = ch1;
packed = (((((packed << 8) | ch2) << 8) | ch3) << 8) | ch4; //在执行什么操作,什么意义

我还是理解不了 

To cattycat ,谢谢,这个我知道了 
cattycat 2009-12-19
  • 打赏
  • 举报
回复
std::hex << std::showbase

是iostream里的东西,以16进制显示。
mstlq 2009-12-19
  • 打赏
  • 举报
回复
http://en.wikipedia.org/wiki/Bitwise_operation

64,649

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧