免费网页源代码网站,桂林广告公司网站建设,在线制作logo图标,国内最新军事新闻最新消息一、左移#xff1a;用来将一个数的各二进制位全部左移n位#xff0c;低位以0补充#xff0c;高位越界后舍弃。n左移1位#xff0c;n1#xff0c;相当于2*n1左移n位#xff0c;1n#xff0c;相当于2^n二、右移#xff1a;将一个数的各二进制位右移N位用来将一个数的各二进制位全部左移n位低位以0补充高位越界后舍弃。n左移1位n1相当于2*n1左移n位1n相当于2^n二、右移将一个数的各二进制位右移N位移到右端的低位被舍弃高位以符号位填充n右移1位n1相当于|n/2|x右移n位xn相当于|x/n|三、常用操作(n k) 1求n二进制下的第k位是0还是1是1结果为真是0结果为假。因为1的二进制数中只有第0位数是1其余位数都是0。n^1即nn^1,能让n变成与原来相反的数0或1n | (1 k)能把n的第k位变成1xx(x-1)用于消去x的最后一位四、二进制状态压缩二进制状态压缩是指讲一个长度为m的bool数组用一个m位二进制整数表示并存储的方法。利用下列位运算操作可以实现bool数组对应下标元素的存取。取出整数n在二进制表示下的第k位 ( n k ) 1取出整数n在二进制表示下的第0~k-1位后k位 n ( ( 1 k ) - 1 )把整数n在二进制表示下的第k位取反 n ^ (1 k)对整数n在二进制表示下的第k位赋值1 n | ( 1 k )对整数n在二进制表示下的第k位赋值0 n ( ~ ( 1 k )