C语言的左移 ‘<<’ 和 右移 ‘>>’ 详解
正数 << :
去掉最前面一位,最后面补零。
负数 <<:
符号不变,去掉最前面一位,最后面补零。
正数 >>:
移动的是二进制存在于内存的补码,正数的源码、反码、补码都是相同的。去掉最后面一位,在前面补零。
负数>>:
移动内存的补码,和正数不同的是,负数的补码和原码不同,需要算出补码后再右移。
C语言的左移 ‘<<’ 和 右移 ‘>>’ 详解
正数 << :
去掉最前面一位,最后面补零。
负数 <<:
符号不变,去掉最前面一位,最后面补零。
正数 >>:
移动的是二进制存在于内存的补码,正数的源码、反码、补码都是相同的。去掉最后面一位,在前面补零。
负数>>:
移动内存的补码,和正数不同的是,负数的补码和原码不同,需要算出补码后再右移。