问题:C#问题!!!!!
右移一位相当于/2,左移一位相当于*2,题中右移两位,相当于除以4,所以输出为: -16 -4 -1 -1 先把位移运算符弄清,右移运算移出的低位被舍弃,空出的高位等同于符号位,即原来高位为1,就补1,为0就补0; 对于左移运算移出的高位被舍弃,低位都补0. 具体的来说: (1) 先把-16采用补码形式用二进制表示:11110000,再将其右移两位,移出的低两位丢弃,高位补1(空出的高位等同于符号位,原操作数高位是1,所以补1),变为11111100,转化为十进制就是-4; (2) 将-4(11111100)右移两位,变为11111111,转化为十进制就是-1 (3) 将-1(11111111)右移两位,还是1111111,结果不变还是-1 如果你对C#问题!!!!!这个问题有好的意见或
建议,请留言
|