C语言中分治的思想-位运算
(1) 有101个整数,其中有50个数出现了两次,1个数出现了一次, 找出出现了一次的那个数。
位运算的思想:任何数和零异或得到自己,任何数自己异或得到0。
eg1.{2,1,5,1,2,2}
| num=0 | 0000 0000 |
| 2 | 0000 0010 |
| 1 | 0000 0001 |
| 5 | 0000 0101 |
| 1 | 0000 0001 |
| 2 | 0000 0010 |
| 2 | 0000 0010 |
可以发现,数字5出现一次,用0依次与每个数异或一下,从0000 0010,0000 0011,0000 0110,0000 0111,0000 0101。可以发现最终出现的结果是出现一次的那个数字,为5。
C语言中分治的思想-位运算的更多相关文章
- C语言的移位操作符及位运算
C语言的移位操作符 位移位运算符是将数据看成二进制数,对其进行向左或向右移动若干位的运算.位移位运算符分为左移和右移两种,均为双目运算符.第一运算对象是移位对象,第二个运算对象是所移的二进制位数. 位 ...
- 在C#中对枚举进行位运算--枚举组合
由于枚举的基础类型类型为基本的数值类型,支持位运算,因此可以使用一个值表示多个枚举的组合,在定义枚举时需要指定枚举数为2的幂指数方便进行位运算,即枚举数为1,2,4,8…,或1,1<<1, ...
- 《C程序设计语言》 练习2-6 及 位运算总结
问题描述 2.6 编写一个函数setbits(x, p ,n, y),该函数返回对x执行下列操作后的结果值: 将x中从第p位开始的n个(二进制)位设置为y中最右边n位的值,x的其余各位保持不变. Wr ...
- java中&和&&的区别 位运算
1.1. 逻辑与的运算符功能 1.1.1. 测试&& public static void main(String[] args) { int x=5; if (x==6 && ...
- C语言中指针的加减运算
参考文章,值得一看 char arr[3]; printf("arr:\n%d\n%d\n%d\n", arr, arr + 1, arr + 2); char *parr[3]; ...
- 零基础逆向工程15_C语言09_位运算
1.汇编中的移位指令 算数移位指令 指令格式:SAL/SAR Reg/Mem, CL/Imm SAL(Shift Arithmetic Left):算数左移 SAR(Shift Arithmetic ...
- C#枚举中的位运算权限分配
什么是位运算 常用的位运算主要有与(&), 或(|)和非(~), 比如: & = ; | = ; ~ = ; 运用在权限设计中 先建立一个枚举表示所有的权限管理操作: [Flags] ...
- 关于C语言中的位域
有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位.例如在存放一个开关量时,只有0和1 两种状态,用一位二进位即可.为了节省存储空间,并使处理简便,C语言提供了一种数据结构,称 ...
- javascript位运算
javascript作为一门高级语言,他尽量让开发人员减少思考底层的硬件工作原理,而将精力集中在逻辑开发的层面.不过,不论这门语言多么高级,我们必须知道数据依然以bits的形式存储,有时候我们会直接与 ...
- Java语言中的正则表达式
正则表达式是什么? 正则表达式是一种强大而灵活的文本处理工具.初学正则表达式时,其语法是一个难点,但它确实是一种简洁.动态的语言.正则表达式提供了一种完全通用的方式,能够解决各种字符串处理相关的问题: ...
随机推荐
- centos52 的smb.conf 共享文件配置 samba 的配置文件,较老版本,网上邻居不显示共享名的问题
新建用户x,组为root, useradd x -g root 用pdbedit -a x 命令添加x到samba服务中,输入密码,即为共享连接时的密码 在配置完毕后,可以用testparm /et ...
- hibernate的校验
//不使用@valid进行校验Set<ConstraintViolation<CommonValidator>> validates = validator.validateV ...
- DIV CSS遮罩层(弹窗窗口)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- C语言学习--指针数组
#include<stdio.h> //指针数组, 数组里面的每一个元素都是指针 int main() { int a = 10; int b = 20; int c = 30; // i ...
- net6 - System.ComponentModel.DataAnnotations Attribute
using System; using System.Web.DynamicData; using System.ComponentModel.DataAnnotations; [MetadataTy ...
- JDK、JRE、JVM和i++
JRE:运行环境(包含JVM和JAVA核心类库) JDK:JAVA开发工具包(包含JRE和开发工具)----开发工具:指编译工具javac和运行工具java JVM:虚拟机,保证了跨平台 ++i:先运 ...
- 利用python中的win32com模块操作Word、Excel文件
word操作 doc文件转换为docx文件 安装win32com模块:pip3 install pypiwin32 import os from win32com.client import Disp ...
- 关于npm和yarn的坑
遇到下载出错的情况,这两个两个双管齐下
- 050_Sublime For Salesforce
之前安装工具都是在网上找的文章,照着步骤一点点来的,最近电脑升级所以要重新安装,花了一个小时终于搞好了,虽然说现在插件已经不维护了,但我觉得目前的工具还是可以够我用的: 1.我之前用的是3083版本, ...
- mycat分片的十四种算法
MyCat的分片规则配置在 conf目录下的 rule.xml文件中定义 ; 环境准备 : schema.xml中的内容做好备份 , 并配置 逻辑库; <schema name="PA ...