对一个无符号字符变量左移8位表示啥?

幽雾 2012-06-04 11:32:24
请大牛解答,对一个无符号字符变量左移8位表示啥啊?然后再与另一个无符号字符变量逻辑或。迷惑不解

unsigned char uc1;
uc1 << 8;//表示啥

unsigned char uc2;
(uc1 << 8) | uc2;//再与uc2逻辑或,表示啥
...全文
1702 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq120848369 2012-06-04
  • 打赏
  • 举报
回复
就是Uc2吧
W170532934 2012-06-04
  • 打赏
  • 举报
回复 3
uc1<<8在寄存器中会显示低8位为0,原来的uc1的值移到了第7--16位。
与uc2或后,寄存器应该是7--16位是uc1,低8位是uc2.然后就看你这个寄存器内的值赋值给谁了。
赵4老师 2012-06-04
  • 打赏
  • 举报
回复
仅供参考
//The _getch function reads a single character from the console without echoing.
//Function can not be used to read CTRL+Break.
//When reading a function key or an arrow key,
//_getch must be called twice; the first call returns 0 or 0xE0,
//and the second call returns the actual key code.
#include <conio.h>
#include <windows.h>
void main() {
unsigned short k;

while (1) {
Sleep(100);
k=getch();
if (27==k) break;//按Esc键退出
if (0==k||0xe0==k) k|=getch()<<8;//非字符键
cprintf("%04x pressed.\r\n",k);
}
}

64,639

社区成员

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

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