精华内容
下载资源
问答
  • 颠倒二进制位数

    2019-08-10 17:37:22
    颠倒给定的 32 位无符号整数的二进制位。 示例 1: 输入: 00000010100101000001111010011100 输出: 00111001011110000010100101000000 解释: 输入的二进制串 00000010100101000001111010011100 表示无符号整数 ...

    颠倒给定的 32 位无符号整数的二进制位。

    示例 1:
    输入: 00000010100101000001111010011100
    输出: 00111001011110000010100101000000
    解释: 输入的二进制串 00000010100101000001111010011100 表示无符号整数 43261596,
    因此返回 964176192,其二进制表示形式为 00111001011110000010100101000000。

    示例 2:
    输入:11111111111111111111111111111101
    输出:10111111111111111111111111111111
    解释:输入的二进制串 11111111111111111111111111111101 表示无符号整数 4294967293,
    因此返回 3221225471 其二进制表示形式为 10101111110010110010011101101001。

    代码片.

    public class Solution {
        // you need treat n as an unsigned value
        public int reverseBits(int n) {
            //方法一:
            int sum=0;
            for(int i=0;i<32;i++){
               int num=n>>i;        //将第i位上的数放到最后一位,例如:110001向右位移一位得到011000;向右位移四位得到000011
               
               
               num &=1;             //得到最后一位的数,例如:0110000                     000011
                                                      //  & 0000001                   & 000001  //&按与运算
                                                      //    0000000//最后一位为0         000001//最后一位为1
    
    
               num<<=(31-i);        //左移31-i位,将数放到要求的位置, 例如:上面向右位移四位最后一位是1,它应该在翻转后数                                     //100011的倒数第二位
               
               
               sum|=num;             //将数累加,如:100010
                                               // |      1 //按或运算
                                               //   100011
                                          
           }
            return sum;
            
    //-----------------------------------------------------------------------------------------------------------------
             //方法2:此方法有错误
        /*    int end=0;
            int sum=0;
          
            for(int i=31;i>=0;i--){
                end=n%2;
                sum+=end*Math.pow(2,i);  
                n=n>>1;
            }
           return sum;
           */
    //-----------------------------------------------------------------------------------------------------------------
        
        }
    
    }
    
    展开全文
  • Java实现 LeetCode 190 颠倒二进制位

    万次阅读 多人点赞 2020-02-24 20:53:47
    190. 颠倒二进制位 颠倒给定的 32 位无符号整数的二进制位。 示例 1: 输入: 00000010100101000001111010011100 输出: 00111001011110000010100101000000 解释: 输入的二进制串 00000010100101000001111010011100 ...

    190. 颠倒二进制位

    颠倒给定的 32 位无符号整数的二进制位。

    示例 1:

    输入: 00000010100101000001111010011100
    输出: 00111001011110000010100101000000
    解释: 输入的二进制串 00000010100101000001111010011100 表示无符号整数 43261596,
          因此返回 964176192,其二进制表示形式为 00111001011110000010100101000000。
    

    示例 2:

    输入:11111111111111111111111111111101
    输出:10111111111111111111111111111111
    解释:输入的二进制串 11111111111111111111111111111101 表示无符号整数 4294967293,
          因此返回 3221225471 其二进制表示形式为 10101111110010110010011101101001。
    

    提示:

    请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。
    在 Java 中,编译器使用二进制补码记法来表示有符号整数。因此,在上面的 示例 2 中,输入表示有符号整数 -3,输出表示有符号整数 -1073741825。

    进阶:
    如果多次调用这个函数,你将如何优化你的算法?

    public class Solution {
        // you need treat n as an unsigned value
        public int reverseBits(int n) {
            int a=0;
            for(int i=0;i<=31;i++){
               // n >> i  一位一位来
             //    &= 1  取出最低位
               //  <<=(31 - i)  颠倒,左移到前面
                
                a=a+((1&(n>>i))<<(31-i));
            }
            return a;
        }
    }
    
    展开全文
  • leetcode 190. 颠倒二进制位

    千次阅读 多人点赞 2020-02-02 14:26:59
    颠倒给定的 32 位无符号整数的二进制位。 示例 1: 输入: 00000010100101000001111010011100 输出: 00111001011110000010100101000000 解释: 输入的二进制串 00000010100101000001111010011100 表示无符号整数 ...

    颠倒给定的 32 位无符号整数的二进制位。

     

    示例 1:

    输入: 00000010100101000001111010011100
    输出: 00111001011110000010100101000000
    解释: 输入的二进制串 00000010100101000001111010011100 表示无符号整数 43261596,
          因此返回 964176192,其二进制表示形式为 00111001011110000010100101000000。
    示例 2:

    输入:11111111111111111111111111111101
    输出:10111111111111111111111111111111
    解释:输入的二进制串 11111111111111111111111111111101 表示无符号整数 4294967293,
          因此返回 3221225471 其二进制表示形式为 10101111110010110010011101101001。
     

    提示:

    请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。
    在 Java 中,编译器使用二进制补码记法来表示有符号整数。因此,在上面的 示例 2 中,输入表示有符号整数 -3,输出表示有符号整数 -1073741825。
     

    思路:就一个循环把变量n的每一位加到res即可。

    public class Solution {
        public int reverseBits(int n) {
            int res = 0;
            int count = 0;
            while (count++ < 32) {
                res <<= 1;  //res 左移一位
                res |= (n & 1); //最低位加过来
                n >>= 1;//原数字右移一位
            }
            return res;
        }
    }

     

    展开全文
  • 190. 颠倒二进制位

    千次阅读 2019-04-14 13:04:48
    颠倒给定的 32 位无符号整数的二进制位。 示例 1: 输入: 00000010100101000001111010011100 输出: 00111001011110000010100101000000 解释: 输入的二进制串 00000010100101000001111010011100 表示无符号整数 ...

    颠倒给定的 32 位无符号整数的二进制位。

     

    示例 1:

    输入: 00000010100101000001111010011100
    输出: 00111001011110000010100101000000
    解释: 输入的二进制串 00000010100101000001111010011100 表示无符号整数 43261596      因此返回 964176192,其二进制表示形式为 00111001011110000010100101000000

    示例 2:

    输入:11111111111111111111111111111101
    输出:10111111111111111111111111111111
    解释:输入的二进制串 11111111111111111111111111111101 表示无符号整数 4294967293,
          因此返回 3221225471 其二进制表示形式为 10101111110010110010011101101001。

     

    提示:

    • 请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。
    • 在 Java 中,编译器使用二进制补码记法来表示有符号整数。因此,在上面的 示例 2 中,输入表示有符号整数 -3,输出表示有符号整数 -1073741825

     

    进阶:
    如果多次调用这个函数,你将如何优化你的算法?

    展开全文
  • 二进制位运算

    千次阅读 2014-02-28 18:04:49
    二进制位元算包括按位与、按位或、按位异或、取反、左移以及右移这几种运算,运算都使用补码,结算的结果也是补码 如果其他进制,比如最常见的十进制要进行二进制位运算,那么先得把十进制数转成二进制数 在了解...
  • leetcode190. 颠倒二进制位

    千次阅读 2019-01-03 10:44:05
    颠倒二进制位 https://leetcode-cn.com/problems/reverse-bits/ 颠倒给定的 32 位无符号整数的二进制位。 示例 1: 输入: 00000010100101000001111010011100 输出: 00111001011110000010100101000000 解释: 输入的...
  • 1、一个字节 = 8位(8个二进制位) 1Byte = 8bit; 2、一个十六进制 = 4个二进制位 3、一个字节 = 2个十六进制 1字节=8位 Delphi中一个16进制为$f,一个16进制数为四个二进制数,$0为0000,0xf为1111,即1个16进制...
  • 题目描述: 颠倒二进制位 颠倒给定的32位无符号整数的二进制位。 例如,给定输入 43261596(二进制表示为 00000010100101000001111010011100 ),返回 964176192(二进制表示为00111001011110 ...
  • 颠倒给定的 32 位无符号整数的二进制位。示例:输入: 43261596 输出: 964176192 解释: 43261596 的二进制表示形式为 00000010100101000001111010011100 ,  返回 964176192,其二进制表示形式为 ...
  • 190. 颠倒二进制位 原题目: 颠倒给定的 32 位无符号整数的二进制位。 示例 1: 输入: 00000010100101000001111010011100 输出: 00111001011110000010100101000000 解释: 输入的二进制串 ...
  • 二进制位运算问题 问题描述:计算数n的二进制补码中有多少个1 Java源码: import java.util.Scanner; public class Main { /** * 计算数n的二进制补码中有多少个1  *int类型是32位的(9的补码二进制是3个1,-9...
  • 二进制位运算---左移右移

    千次阅读 2019-11-11 22:03:47
    二进制位运算---左移(<<)右移(>>) (1).二进制中负数的计算 负数以正数的补码表示 原码:一个整数按照绝对值的大小转化成二进制的数 反码:将二进制数按位取反 补码:反码加 1 以-14 举例 原码...
  • 二进制位统计算法(swar)

    千次阅读 2019-04-08 15:31:30
    里面讲到了几种二进制位统计算法,在此做个记录 1. 遍历二进制位 def count_bit(num): count = 0 while num: count += num & 1 num >>= 1 return count 遍历统计需要 ...
  • 16进制和八个二进制位的关系

    千次阅读 2017-05-02 15:02:28
    英文名称:hexadecimal number system(HEX) 它由0-9,A-F组成,字母不区分大小写。...一个字节八个比特,就是八个二进制位四个二进制数最大表示为15,就是一个16进制数,所以八位可以表示成两个16进制的数!
  • LintCode 1333. 颠倒二进制位 Python算法

    千次阅读 2020-09-07 14:07:53
    颠倒给定的 32 位无符号整数的二进制位。 说明 请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无...
  • 将一个16进制的数的二进制位反序

    千次阅读 2017-09-22 10:32:55
    这是昨天晚上某号称中国创新力最强的应用层网络...程序如下:编写函数reverse(),将val(32位无符号整数)的二进制位反序。比如,如果val的二进制表示为1011000011111111,反序后的val的二进制表示为 1111111100001101.
  • JAVA中常用的二进制位操作 一,计算某个正数的二进制表示法中 1 的个数 1 //求解正数的二进制表示法中的 1 的位数 2 private static int countBit(int num){ 3 int count = 0; 4 for(; num &gt; 0; count++) ...
  • Redis二进制位数组BitMap

    千次阅读 2018-11-18 09:56:23
    Redis提供了setbit、getbit、bitcount、bitop四个命令用于处理二进制位数组。 # setbit key pos [0/1] 设置key的第pos位置为0或者1 &amp;amp;amp;amp;gt; setbit bit 0 1 # 设置第0为1 0000000...
  • 190.颠倒二进制位 描述 颠倒给定的 32 位无符号整数的二进制位。 示例 输入: 43261596 输出: 964176192 解释: 43261596 的二进制表示形式为 00000010100101000001111010011100 , 返回 964176192,其...
  • php 二进制位操作举例

    2018-11-17 22:54:11
    php 二进制位操作距离 博客最近长草了,非常抱歉。最近家里和公司事情比较多,没有时间来管理博客。看了大家的评论,关于demo的事情,我会尽量早点的编写。 下面说正体,关于php的位操作。 对这一块我也不是非常...
  • 颠倒给定的 32 位无符号整数的二进制位。 输入: 43261596 输出: 964176192 解释: 43261596 的二进制表示形式为 00000010100101000001111010011100 ,返回 964176192,其二进制表示形式为 ...
  • 二进制位运算和状态存储

    千次阅读 2018-05-25 08:15:46
    在系统设计中只要是状态只有两种状态(0,1)的都可以用二进制位来表示,如果有多个状态用多个位或者还是新加字段吧。(1)可以节省字段。一个字段只需要一个数字 就可以标识很多种设置和信息。(2)可以处理位置...
  • LeetCode——第190题:颠倒二进制位

    千次阅读 2018-08-03 19:31:15
    颠倒给定的 32 位无符号整数的二进制位。 示例: 输入: 43261596 输出: 964176192 解释: 43261596 的二进制表示形式为 00000010100101000001111010011100 , 返回 964176192,其二进制表示形式为 ...
  • (JAVA)二进制位查看器

    千次阅读 2017-07-09 22:53:28
    二进制位查看器代码,第一次练习可视化编程
  • 颠倒给定的 32 位无符号整数的二进制位。 示例 1: 输入: 00000010100101000001111010011100 输出: 00111001011110000010100101000000 解释: 输入的二进制串 00000010100101000001111010011100 表示无符号整数 ...
  • C++ 二进制位运算判断奇数偶数

    千次阅读 2015-03-13 22:20:15
    C++ 二进制位运算判断奇数偶数 //C++ 二进制位运算判断奇数偶数,二进制取位操作,取二进制末位 #include using namespace std; void main() { int i; for(i=0;i;++i) { if(1==(1&i)) cout是奇数"; ...
  • 颠倒给定的 32 位无符号整数的二进制位。 示例: 输入: 43261596 输出: 964176192 解释: 43261596 的二进制表示形式为 00000010100101000001111010011100 ,  返回 964176192,其二进制表示形式为 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 80,040
精华内容 32,016
关键字:

二进制位