精华内容
下载资源
问答
  • 那么你知道两个int32整数m和n的二进制表达,有多少(bit)不同么? 输入例子: 1999 2299 输出例子: 7 我的代码: /** * 求两个数的二进制中不同的位数 * @param m * @param n * @return 返回...

    问题描述:

    世界上有10种人,一种懂二进制,一种不懂。那么你知道两个int32整数m和n的二进制表达,有多少个位(bit)不同么?


    输入例子:

    1999     2299


    输出例子:

    7


    我的代码:

    /**
    	 * 求两个数的二进制中不同的位数
    	 * @param m 
    	 * @param n
    	 * @return 返回不同的位数的个数
    	 */
    	public static int countBitDiff(int m, int n) {
    		//异或
    		int ans = m^n;
    		//求ans中1的个数
    		int count = 0;
    		while(ans != 0){
    			ans &= (ans -1);
    			count++;
    		}
    		return count;
        }


        注意通过这道题学习如何求一个数二进制中1的个数


    展开全文
  • 十进制整数转换成二进制采用“除2倒取余”,十进制小数转换成二进制小数采用“乘2取整”。 例题: 135D = __ B 解析:如下图所示,将135除以2,得余数,直到不能整除,然后再将余数从下至上倒取。得到结果:1000 ...

    1.十进制转R进制

    1.1 十进制转二进制

    十进制整数转二进制

    十进制整数转换成二进制采用“除2倒取余”,十进制小数转换成二进制小数采用“乘2取整”。

    例题: 135D = ______ B

    **解析:**如下图所示,将135除以2,得余数,直到不能整除,然后再将余数从下至上倒取。得到结果:1000 0111B.
    这里写图片描述

    图1.十进制整数转二进制

    十进制小数转二进制

    十进制小数转换成二进制小数采用 “乘2取整,顺序排列” 法。

    具体做法是:

    用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数 部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。

    然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。

    例题: 0.68D = ______ B(精确到小数点后5位)

    **解析:**如下图所示,0.68乘以2,取整,然后再将小数乘以2,取整,直到达到题目要求精度。得到结果:0.10101B.

    在这里插入图片描述

    图2.十进制小数转二进制

    1.2 十进制转八进制

    思路和十进制转二进制一样,参考如下例题:

    例题: 10.68D = ______ Q(精确到小数点后3位)

    **解析:**如下图所示,整数部分除以8取余数,直到无法整除。小数部分0.68乘以8,取整,然后再将小数乘以8,取整,直到达到题目要求精度。得到结果:12.534Q.

    这里写图片描述

    图3.十进制转八进制

    1.3 十进制转十六进制

    思路和十进制转二进制一样,参考如下例题:

    例题: 25.68D = ______ H(精确到小数点后3位)

    **解析:**如下图所示,整数部分除以16取余数,直到无法整除。小数部分0.68乘以16,取整,然后再将小数乘以16,取整,直到达到题目要求精度。得到结果:19.ae1H.

    这里写图片描述

    图4.十进制转十六进制
    # 2.R进制转十进制 ## 2.1 二进制转十进制 **方法为:**把二进制数按权展开、相加即得十进制数。(具体用法如下图)

    例题: 1001 0110B = ______ D

    **解析:**如下图所示。得到结果:150D.

    这里写图片描述

    图5.二进制转十进制

    2.2 八进制转十进制

    八进制转十进制的方法和二进制转十进制一样。

    例题: 26Q = ______ D

    **解析:**如下图所示。得到结果:22D.

    这里写图片描述

    图6.八进制转十进制

    2.3 十六进制转十进制

    例题: 23daH = ______ D

    **解析:**如下图所示。得到结果:9178D.

    这里写图片描述

    图7.十六进制转十进制

    3.二进制转八进制

    二进制转换成八进制的方法是,取三合一法,即从二进制的小数点为分界点,向左(或向右)每三位取成一位。

    例题: 1010 0100B = ____Q

    **解析:**计算过程如下图所示。得到结果:244Q.

    这里写图片描述

    图8.二进制转八进制

    4.二进制转十六进制

    二进制转换成八进制的方法是,取四合一法,即从二进制的小数点为分界点,向左(或向右)每四位取成一位。

    例题: 1010 0100B = ____H

    **解析:**计算过程如下图所示。得到结果:a4H.

    这里写图片描述

    图9.二进制转十六进制

    5.工欲善其事,必先利其器

    下面的表格是8位二进制所对应的十进制数值,对进制转换以及类似题目的理解非常有用:

    1 1 1 1 1 1 1 1 B
    128 64 32 16 8 4 2 1 D

    注:B:二进制
           D:十进制


    例题: 135D = ______ B

    **解析:**有了上面二进制对应十进制数值的表格,我们就可以将题目给的十进制135拆分为:128+7,再从表格中找到对应的数值,拼凑即可得到答案。
    135D = 128D + 7D = 1000 0111B

    展开全文
  • 计算一个十进制数的二进制表示有多少位1 一、看个例子 5的二进制为101含有2个1 15的二进制为1111含有4个1 二、实现原理 通过运算中的&运算将数字二进制中的1变成0,即每进行一次操作二进制表示中的1就...

    计算一个十进制数的二进制表示有多少位1

    一、看个例子

    5的二进制为101含有2个1

    15的二进制为1111含有4个1

    二、实现原理

    通过位运算中的&运算将数字二进制中的1变成0,即每进行一次操作二进制表示中的1就减少一位,当所有的1都变为0的时候,数字就变成了0。

    怎样用&将二进制某一位上面的1变为0

    因为

    当与运算&左右两边值都为1时,结果为1

    当与运算&左右两边有一边值为0时,结果为0

    所以

    • 1.如果数字二进制表示的某一位为1,将这一位和0进行&运算后得到的结果中,这一位就变为0。
    • 2.我们是从低位开始,将1变为0,也就是先将最右边的1变为0。
    • 3。a-1的妙用,根据上一句话,我们可以知道当前要消除的1为最右边的1,所以可以将其右边全部看成是0,a-1会将右边的0全部变成1(0减去1向前借位),而本身由于借位变成0,这样就达成了1的目标。

    举个例子n二进制为1101,等价于110100,n-1的二进制为110011,则110100&110011结果的二进制为110000

    假定数字为a,具体实现


    1.将数字a和a-1进行与操作,得到的结果为消除掉最右边1后的十进制数
    2.统计1的个数的变量的值加1
    3.判断a是否为0,若为0则统计结束,否则继续进行1、2步操作

    三、C语言代码实现

    #include<stdio.h>
    int main()
    {
        int i, num, count;
        scanf("%d", &n);
        count = 0;
        while(n > 0) {//统计
            n = n & n-1;//将当前最右边的1变为0
            count++;
        }
        printf("%d\n", count);
        return 0; 
    }

    四、时间复杂度分析

    时间复杂度主要耗在while循环里面,而循环执行的次数取决于该数二进制表示有多少个1,所以时间复杂度为线性。

    参考:
    http://www.cnblogs.com/grenet/archive/2011/06/10/2077228.html

    展开全文
  • Java实现 LeetCode 693 交替位二进制数(运算)

    万次阅读 多人点赞 2020-04-06 21:34:30
    693. 交替位二进制数 给定一个正整数,检查他是否为交替位二进制数:换句话说,就是他的二进制数相邻的两个位数永不相等。 示例 1: 输入: 5 输出: True 解释: 5的二进制数是: 101 示例 2: 输入: 7 输出: False 解释:...

    693. 交替位二进制数

    给定一个正整数,检查他是否为交替位二进制数:换句话说,就是他的二进制数相邻的两个位数永不相等。

    示例 1:

    输入: 5
    输出: True
    解释:
    5的二进制数是: 101
    示例 2:

    输入: 7
    输出: False
    解释:
    7的二进制数是: 111
    示例 3:

    输入: 11
    输出: False
    解释:
    11的二进制数是: 1011
    示例 4:

    输入: 10
    输出: True
    解释:
    10的二进制数是: 1010

    class Solution {
          public boolean hasAlternatingBits(int n) {
           boolean res = true;
        int pre = -1;
        while(n != 0){
    
            if(pre != -1 && pre == (n & 1)){
                res = false;
                break;
            }else{
                pre = n & 1;
                n = n >> 1;
            }
    
        }
    
        return res;
     
        }
    }
    
    展开全文
  • 十进制与二进制的转化,寻找二进制的奇数,偶数,任意
  • 十进制转32位二进制(Java)

    千次阅读 2019-12-04 13:22:19
    十进制转32位二进制(Java),输入一个正整数N,输出一个32二进制数(例如输入2,输出前面30个0+10)
  • 二进制 二进制就是计算机常用的进制,即逢二进一。例如:1010 八进制 八进制即逢八进一。例如:626 十进制 十进制就是我们在计算中常用的进制,所以就不再举例(即逢十进一) 十六进制 十六进制与其它进制...
  • 二进制转换及运算

    千次阅读 2016-02-25 08:53:10
    ------- android培训、java培训、期待...比如说二进制是逢2进一,十进制也就是我们常用的0-9是逢10进一。 ①二进制 1.二进制转十进制:  方法:把二进制数按权展开、想加即得十进制数。 计算过程(二进制数 111000
  • 求整数A二进制的最低位数

    千次阅读 2018-09-15 19:34:37
     比如:A= 26,它的二进制形式为:11010,最低为10,所以应该输出2,  再比如 A=92,它的二进制为:01011100,最低为:100,所以应输出4. 输入描述  每行输入一个数字A(0 &lt; A &lt; 100),...
  • 二进制运算

    千次阅读 2019-03-15 20:03:26
    所有编程语言都是一种人和计算机之间的翻译工具,人的数组语言翻译成二进制给计算机读取,然后把计算机的二进制数据翻译成人类的语言呈现出来。 16进制 16进制用于缩写(简写)2进制,将2进制从后向前 每4位数转换...
  • 二进制的最低

    千次阅读 2019-01-20 14:09:48
    杭电1.2.8 Lowest Bit ...amp;sectionid=2&amp;problemid=22 这道题是将十进制写成二进制,然后输出二进制的最低! 例如: 26(10)=11010(2) 输出:2; 88(10)=1011000(2) 输出:8; (最...
  • C语言算法之将十进制数转换成二进制

    万次阅读 多人点赞 2018-06-20 14:35:29
    导语:在C语言中没有将其他进制的数直接输出为二进制数的工具或方法,输出为八进制数可以用%o,输出为十六进制可以用%x,输出为二进制就要我们自行解决了。下面给大家讲述一下如何编程实现将十进制数转换成二进制数...
  • 二进制状态标志在Java中的应用

    千次阅读 2019-11-15 16:57:36
    1、二进制 为什么是二进制呢?因为计算机在计算的时候全部都是基于二进制计算的。在Java中声明一个普通的int类型变量: private int age = 10; 此时的变量 age 是默认十进制的,转化为二进制也就是:1010。如果想要...
  • 1.//求一个数二进制中含有多少个1 //2.获取一个数二进制序列中所有的偶数和奇数,分别输出二进制序列 //3.写一个程序将一个数的二进制表示中奇数和偶数进行交换。 //4.输出二进制左右分别交换后的值
  • 十进制与二进制的数关系

    千次阅读 2019-08-09 00:57:11
    在C++精度范围内符合:2进制与10进制转换时的位数,符合2^10=10^3,需要多了24,但是对数没有影响 ...二进制下的2^i次方的值,逢10,十进制下就多3(3个0),余0~3不变,余4~6加一,余7~9加两 ...
  • 判断一个数的二进制数有多少位1

    千次阅读 2020-04-01 15:20:38
    其实这篇文章可以挖的很深,从二进制的本质出发有很多可以考虑的点。但是我并不能理解这么深55555 从题目中的问题出发,我们将十进制转换为二进制的时候使用的是什么方法呢? 将该数跟2取余,再除于2,反复操作,...
  • java中的二进制以及基本运算

    万次阅读 多人点赞 2018-06-30 17:50:57
    二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统使用的...
  • Java实现 LeetCode 190 颠倒二进制位

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

    千次阅读 2018-05-19 23:34:39
    主要需求:十进制转二进制,控制指定的位数。 详细说明见:IFE2018之JS小任务 转化显示后的二进制数为bin-bit中输入的数字宽度。 dec-number为5,bin-bit为5,则转化后数字为00101。 如果bin-bit小于转化后...
  • 首先先要明确计算机是以二进制来进行计算的,...而16进制,是满16进1,而二进制是满2进1,则说明16进制的一个位置是需要二进制的4才能占满的(16=2^4),则32对于16进制来说需要8(每一二进制的4个) ...
  • 二进制+操作 总结

    千次阅读 2018-08-13 11:48:31
    扒了几篇博文,都是一些不符合需求的,对于一个数学渣渣来说,说的太简洁是会...位运算(位运算符用来对二进制位进行操作)  算术位运算:  &lt;1&gt; 与:(and / &amp;);&lt; 2&gt; ...
  • 取出二进制的某些

    千次阅读 2015-07-22 09:28:23
    //取出二进制中从右向左数的p位置,向右数n个二进制位 int k, p, n; printf("请输入要取位的数值:"); scanf("%d", &k); printf("请输入要取位的位置及个数:"); scanf("%d%d", &p, &n); k = k >> (p
  • 十进制转成二进制,最快的方法就是运算 十进制数528的二进制码为:0000001000010000 将其取反(求反码)后的结果:1111110111101111 将反码加一(求补码)后结果:1111110111110000 所以,-528的二进制码为...
  • 二进制

    千次阅读 2021-04-10 14:26:29
    当是long类型时,二进制默认占64,第64是符号 所有数字在计算机底层都以二进制形式存在 二进制的整数有如下三种形式: 原码:直接将一个数值换成二进制数。最高是符号 负数的反码:是对原码按取反,...
  • 二进制位按位取反

    千次阅读 2014-02-13 11:33:57
    public class Test03{ public static void main(String[] args){ int num = 0; for(int i = 0;i;i++){ if(num == 0){ System.out.println("奇数次执行");...//二进制位按位取反 } } }
  • 二进制中有多少个1

    千次阅读 2016-05-31 22:24:57
    题目描述:计算在一个 32 位的整数的二进制表式中有多少个 1. 样例:给定 32 (100000...但是通过位运算(其实就是通过分析二进制位上0,1的关系,直接对0,1比特位进行运算)我们可以更快地解决问题。 先说一下基本的几种
  • 二进制数、和字节

    千次阅读 2013-12-19 15:15:43
    书写数字的常用方法是十进制。例如:2157的千位是2,百位是1,十是5,个是7,这意味着可以将2157看作如下形式: 2×1000+ 1×100 + 5×10 + 7×1 也就是如下形式: 2×103+1×102+ 5×101+7×100 姑且...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 767,777
精华内容 307,110
关键字:

二进制一共多少位