zoukankan      html  css  js  c++  java
  • Binary operations #1

    https://www.codewars.com/kata/binary-operations-number-1/train/csharp

    Your work is to write a method that takes a value and an index, and returns the value with the bit at given index flipped.

    The bits are numbered from the least significant bit (index 1).

    Example:

    FlipBit(15,4) == 7 // 15 in binary is 1111, after flipping 4th bit, it becomes 0111, i.e. 7
    FlipBit(15,5) == 31 // 15 in binary is 1111, 5th bit is 0, after flipping, it becomes 11111, i.e., 31

    using System;
    public class Flip
    {
        public static int FlipBit(int value, int bitIndex)
        {
            string str = Convert.ToString(value, 2).PadLeft(32,'0');
            var array = str.ToCharArray();
            int index = 32 - bitIndex;
            if (array[index] == '0')
            {
                array[index] = '1';
            }
            else
            {
                array[index] = '0';
            }
            str = string.Join(string.Empty,array);
            return Convert.ToInt32(str,2);
        }
    }

    对于给定的value,反转index位置上对应的bit。index从最右边开始为第一位。

    using System;
    public class Flip
    {
        public static int FlipBit(int value, int bitIndex)
        {
            int Mask = 1 << (bitIndex - 1);
            return value ^ Mask;
        }
    }
  • 相关阅读:
    133
    132
    131
    130
    129
    128
    2019.10.16考试解题报告
    2019.10.15考试解题报告
    洛谷 P1352 没有上司的舞会
    2019.10.13考试解题报告
  • 原文地址:https://www.cnblogs.com/chucklu/p/6413844.html
Copyright © 2011-2022 走看看