计算器软件中, 当光标在不同的进制时,选择左移或右移,得到的结果是不一样的
因为当你处于不同的进制时,你移动的数字 对应的进制数就是你目前所处的进制。
就是说你在计算器中算,当光标在16进制时,且左移16位,计算器认为你左移的是16进制的数字16,而不是十进制的16
1,光标位于十六进制时左移16位:
也就是左移了0x16=22位
2,光标位于十进制时左移16位:
#include
#include
int main()
{
uint32_t p1 = 0x20;
uint32_t p1_move = p1 << 16;
printf("p1=%llu=0x%x\n",p1,p1);
printf("p1_move=%llu=0x%x\n",p1_move,p1_move);
uint32_t p0 = 0x31;
printf("p0=%llu=0x%x\n",p0,p0);
uint32_t p = p1_move | p0;
printf("p=%llu=0x%x\n",p,p);
return 0;
}
p1=32=0x20
p1_move=2097152=0x200000
p0=49=0x31
p=2097201=0x200031