zoukankan      html  css  js  c++  java
  • c# 位运算

    1:异或运算:符号^,也称XOR运算,它的规则是若参加运算的两个二进制同号,则结果为0,异号则为1,即:0^0=0; 0^1=1; 1^0=1;1^1=0

      

    2:对两个表达式执行按位异或。

    result = expression1 ^ expression2

    参数

    result

    任何变量。

    expression1

    任何表达式。

    expression2

    任何表达式。

    说明

    ^ 运算符查看两个表达式的二进制表示法的值,并执行按位异或。该操作的结果如下所示:

    0101     (expression1)
    1100     (expression2)
    ----
    1001     (结果)

    当且仅当只有一个表达式的某位上为 1 时,结果的该位才为 1。否则结果的该位为 0。

    只能用于整数

    3:算法例子:LeedCode136. 只出现一次的数字

    给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

    说明:

    你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?

    示例 1:

    输入: [2,2,1]
    输出: 1
    

    示例 2:

    输入: [4,1,2,1,2]
    输出: 4
    class Program
        {
            static void Main(string[] args)
            {
                int[] nums = { 1, 1, 2, 3, 3 };
                Console.WriteLine(Solution.SingleNumber(nums));
            }
            public static class Solution
            {
                public static int SingleNumber(int[] nums)
                {
                    for (int i = 1; i < nums.Length; i++)
                    {
                        nums[0] ^= nums[i];//异或运算:先转换成二进制进行运算
                    }
                    return nums[0];
                }
            }
  • 相关阅读:
    HDU 2147 找规律博弈
    HDU 1564 找规律博弈
    寒假训练3解题报告 CodeForces #148
    HDU 1525 Euclid Game
    状态压缩DP总结
    HDU 1079 简单博弈
    CodeForces 159E
    codeforces 88E Interesting Game
    【poj2891-Strange Way to Express Integers】拓展欧几里得-同余方程组
    【poj1006-biorhythms】中国剩余定理
  • 原文地址:https://www.cnblogs.com/SimplePoint/p/9013105.html
Copyright © 2011-2022 走看看