bitshifttest.cpp
来自「《基于Symbian OS的手机开发与应用实践》这本书的配套源码。」· C++ 代码 · 共 45 行
CPP
45 行
// BitShiftTest.cpp : 移位操作测试
//
// 测试结果,<< >>运算不影响有符号数符号位:
// >>运算:符号位为1,最高位补1;
// >>运算:符号位位0,最高位补0
// >>运算:无符号数,最高位都补0
// <<运算:符号数,符号位不变,其他位移动,低位补0
// <<运算:无符号数,所有位移动,低位补0
#include <stdio.h>
int main(int argc, char* argv[])
{
char a = 16;
char b = -15;
unsigned char ua = 15;
unsigned char ub = -16;
unsigned char uc = 130; //0x82
printf("a的值为:%d\n", a);
printf("b的值为:%d\n", b);
printf("ua的值为:%d\n", ua);
//-16补码F0,转为符号后为ub-->240
printf("ub的值为:%d\n", ub);
printf("uc的值为:%d\n\n", uc);
printf("a左移2位的结果为:%d\n", (char)(a<<2));
printf("b左移2位的结果为:%d\n", (char)(b<<2));
printf("ua左移2位的结果为:%d\n", (unsigned char)(ua<<2));
//F0 --> C0 = 192
printf("ub左移2位的结果为:%d\n", (unsigned char)(ub<<2));
//8
printf("uc左移2位的结果为:%d\n\n", (unsigned char)(uc<<2));
printf("a右移2位的结果为:%d\n", (char)(a>>2));
printf("b右移2位的结果为:%d\n", (char)(b>>2));
printf("ua右移2位的结果为:%d\n", (unsigned char)(ua>>2));
printf("ub右移2位的结果为:%d\n", (unsigned char)(ub>>2));
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?