左移、右移是对二进制(是数据在内存中的存储方式)的位操作。
45是十进制整型数,在内存中占2个字节(即16位),其
对应的16位二进制数是 : " 0000 0000 0010 0111 ”
现在将其各个位的数向左移4位,前四位 " 0000 " 由于超出16位的范围而溢出,后4位空缺的添加上" 0000 ",最后得到16位二进制数 " 0000 0010 0111 0000 ",其对应的十进制数为720。
然后,下一个将45对应的16位二进制数向右移4位,前4位空缺就添上" 0000 ",后4位 " 0111 " 由于超出16位的范围而溢出,最后得到16位二进制数 " 0000 0000 0000 0010 " ,其对应的十进制数为2。
追问45化成二进制会是16位数,原因:是不是一个整数占两个字节,45是两个整数,所以是4个字节。