A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 勇猛的小黑 中级黑马   /  2015-11-13 22:59  /  643 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

位运算符介绍。这些位运算符只适用于   整形   操作符,
        1、& 按位与   int类型占四个字节,一个字节8位。所以一个int类型 有32 位        
                9&4 ==== 00001001
                                &00000100   //同1为1  有0为0
                                 00000000   结果为0
        2、| 按位或  同0为0  有1 为1
        3、^ 按位异或  相同为0 ,不同为1
        4、~ 按位取反
                ~9 这是9的原码  0000 0000 0000 0000 0000 0000 0000 1001
                   所以可得到9的补码(计算机中以补码存在所以要转换成补码,如果都是正数就不存在此问题。)  0000 0000 0000 0000 0000 0000 0000 1001
                   取反 得到~9的补码  为  1111 1111 1111 1111 1111 1111 1111 0110
                                得到~9的反码  为  1111 1111 1111 1111 1111 1111 1111 0101
                                得到~9的原码  为  1000 0000 0000 0000 0000 0000 0000 1010   即-10
        5、<< 按位左移  ge
                各二进制全部左移n位,高位丢弃,低位补0.
                8<<2   8左移两位,
                        0000 0000 0000 0000 0000 0000 0000 1000
                  0000 0000 0000 0000 0000 0000 0000 1000 00
                    高位丢弃,低位补0所以变成
                        00 0000 0000 0000 0000 0000 0000 1000 00 = 32
                记忆技巧:向左移n位,相当于原数*2^n.
                致命问题:左移会改变一个数的正负性。这时候上边的技巧就不试用了。
        6、>> 按位右移
                右移位,移出去的部分要舍弃,高位补符号位。
                技巧。向右移n位,相当于原数除以 2^n
                因为高位补符号位,所以右移位不会改变数据的正负性。
               
        实用技能。获取一个数的最低位(奇偶),可以让这个数跟1,进行按位与运算

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马