某日工作中有个需求是将不同的数值存到char的前4位和后4位中。好奇心就来了,在右移24位以后是否还有必要再与上(&)0x000000FF将高位的数据彻底清零呢?我认为还是有必要的,因为并不知道值的类型是否是无符号数,假如原本的32位数是普通的in
对于一个位表示为[xn-1,xn-2,…也就是说,x向左移动k位,丢弃最高的k位,并在右端补k个0。移位量应该是一个0~n-1之间的值。有一个相应的右移运算x>>k,但是它的行为有点微妙。这种做法看上去可能有点奇特,但是我们会发现它对有符号整数
左移运算符是用来将一个数的各二进制位左移若干位,移动的位数由右操作数指定,其右边空出的位用0填补,高位左移溢出则舍弃该高位。注意:对无符号数,右移时左边高位移入0;对于有符号的值,如果原来符号位为0,则左边也是移入0。移入0的称为“逻辑移位”,即简单移位;
安科网(Ancii),中国第一极客网
Copyright © 2013 - 2019 Ancii.com
京ICP备18063983号-5 京公网安备11010802014868号