精华内容
下载资源
问答
  • 二进制数转字符串。给定一个介于0和1之间的实数(如0.72),类型为double,打印它的二进制表达式。 如果该数字不在0和1之间,或者无法精确地用32位以内的二进制表示,则打印“ERROR”。 示例1: 输入:0.625 输出:...

    1. 题目

    二进制数转字符串。给定一个介于0和1之间的实数(如0.72),类型为double,打印它的二进制表达式。

    如果该数字不在0和1之间,或者无法精确地用32位以内的二进制表示,则打印“ERROR”。

    示例1:
     输入:0.625
     输出:"0.101"
     
    示例2:
     输入:0.1
     输出:"ERROR"
     提示:0.1无法被二进制准确表示
     
    提示:
    32位包括输出中的"0."这两位。
    

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/bianry-number-to-string-lcci
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    2. 解题

    • 浮点数乘以进制2,取整数位添加到 二进制小数位后面
    • 浮点数舍去整数位,重复以上过程直至浮点数变成 0,若无法等于 0,则无法精确表示
    class Solution {
    public:
        string printBin(double num) {
        	if(num < 0 || num > 1.0)
        		return "ERROR";
        	string ans = "0.";
        	int bits = 2;
        	while(num > 0)
        	{
        		num *= 2;//*2 进制数
        		if(num >= 1.0)
        		{
        			ans += '1';
        			num -= 1;//舍去整数位
        		}
        		else
        			ans += '0';
        		bits++;
        		if(bits > 32)
        			return "ERROR";
        	}
        	return ans;
        }
    };
    

    另参考:二进制小数 转 10进制

    二进制 0.1111\quad 0 \quad . \quad 1 \quad\quad 1 \quad \quad 1 \quad \quad 1


    次方 2021222324\quad \quad 2^0 \quad \quad 2^{-1} \quad 2^{-2} \quad 2^{-3} \quad 2^{-4}


    十进制 0+0.5+0.25+0.125+0.0625=0.9375\quad 0 + 0.5 + 0.25 + 0.125 + 0.0625 = 0.9375

    展开全文
  • 二进制数的运算方法

    万次阅读 多人点赞 2017-08-29 14:12:13
    1.二进制数的算术运算 二进制数的算术运算包括:加、减、、除四则运算,下面分别予以介绍。 (1)二进制数的加法 根据“逢二进一”规则,... (2二进制数的减法 根据“借一有二”的规则,二进制数减法的法则为:

    1.二进制数的算术运算
    二进制数的算术运算包括:加、减、乘、除四则运算,下面分别予以介绍。

    (1)二进制数的加法

      根据“逢二进一”规则,二进制数加法的法则为:
      0+0=0
      0+1=1+0=1
      1+1=0 (进位为1) 
      1+1+1=1 (进位为1)
    
      例如:1110和1011相加过程如下:
    

    在这里插入图片描述

      (2)二进制数的减法
    
      根据“借一有二”的规则,二进制数减法的法则为:
    
      0-0=0
      1-1=0
      1-0=1
      0-1=1 (借位为1)
    
      例如:1101减去1011的过程如下:
    

    在这里插入图片描述

      (3)二进制数的乘法
    
      二进制数乘法过程可仿照十进制数乘法进行。但由于二进制数只有0或1两种可能的乘数位,导致二进制乘法更为简单。二进制数乘法的法则为:
    
      0×0=0
      0×1=1×0=0
      1×1=1
    
      例如:1001和1010相乘的过程如下:
    

    这里写图片描述

      由低位到高位,用乘数的每一位去乘被乘数,若乘数的某一位为1,则该次部分积为被乘数;若乘数的某一位为0,则该次部分积为0。某次部分积的最低位必须和本位乘数对齐,所有部分积相加的结果则为相乘得到的乘积。
    
      (4)二进制数的除法
    
      二进制数除法与十进制数除法很类似。可先从被除数的最高位开始,将被除数(或中间余数)与除数相比较,若被除数(或中间余数)大于除数,则用被除数(或中间余数)减去除数,商为1,并得相减之后的中间余数,否则商为0。再将被除数的下一位移下补充到中间余数的末位,重复以上过程,就可得到所要求的各位商数和最终的余数。
    
      例如:100110÷110的过程如下:
    

    这里写图片描述

      所以,100110÷110=110余10。
    

    2.二进制数的逻辑运算
    二进制数的逻辑运算包括逻辑加法(“或”运算)、逻辑乘法(“与”运算)、逻辑否定(“非”运算)和逻辑“异或”运算。

      (1)逻辑“或”运算
    
      又称为逻辑加,可用符号“+”或“∨”来表示。逻辑“或”运算的规则如下:
    
      0+0=0或0∨0=0
      0+1=1或0∨1=1
      1+0=1或1∨0=1
      1+1=1或1∨1=1
    
      
      可见,两个相“或”的逻辑变量中,只要有一个为1,“或”运算的结果就为1。仅当两个变量都为0时,或运算的结果才为0。计算时,要特别注意和算术运算的加法加以区别。
    
      (2)逻辑“与”运算
    
      又称为逻辑乘,常用符号“×”或“· ”或“∧”表示。“与”运算遵循如下运算规则:
    
      0×1=0或0·1=0或0∧1=0
      1×0=0或1·0=0或1∧0=0
      1×1=1或1·1=1或1∧1=1
    
      可见,两个相“与”的逻辑变量中,只要有一个为0,“与”运算的结果就为0。仅当两个变量都为1时,“与”运算的结果才为1。
    
      (3)逻辑“非”运算
    
      又称为逻辑否定,实际上就是将原逻辑变量的状态求反,其运算规则如下:
    
    
      可见,在变量的上方加一横线表示“非”。逻辑变量为0时,“非”运算的结果为1。逻辑变量为1时,“非”运算的结果为0。
    
      (4)逻辑“异或”运算 
      “异或”运算,常用符号“”或“”来表示,其运算规则为:
    
      00=0 或 00=0
      01=1 或 01=1
      10=1 或 10=1
      11=0 或 11=0
    
      可见:两个相“异或”的逻辑运算变量取值相同时,“异或”的结果为0。取值相异时,“异或”的结果为1
    
    展开全文
  • 二进制数表示计算机的由来:  计算机内部由IC(集成电路)这种电子部件构成。IC有几种不同形状,又的像黑色蜈蚣,在两侧有数个乃至上百个引脚,引脚在IC内部并排 排列着。  所有引脚只有直流电压 0V 或 5V 两个...

     

    二进制数表示计算机的由来:

      计算机内部由IC(集成电路)这种电子部件构成。IC有几种不同形状,又的像黑色蜈蚣,在两侧有数个乃至上百个引脚,引脚在IC内部并排 排列着。

      所有引脚只有直流电压 0V 或 5V 两个状态。这一特性决定了只能用二进制数来处理。

     

    把各个为拆开。乘以2的次幂。末尾位乘2的0次幂。依次类推。 

    比如:10010111 

    十进制=1*2^7+0*2^6+0*2^5+1*2^4+0*2^3+1*2^2+1*2+1*2^0 ;

    PS:末尾位是2的零次幂,所以是1。

     

     

    二进制: 11 0010 0111 0001.011
    转换成十进制:=2^13+2^12+2^9+2^6+2^5+2^4+2^0+2^(-2)+2^(-3)

    转载于:https://www.cnblogs.com/zhangym118/p/9629480.html

    展开全文
  • 值 的 进 制 为,则 依 公 式可知         上式表明,若将除以2,则商为,而余数即为。同理, 上式所得商再除以 2,有            &...

    除2取余法的依据

    假 定十进制整数为等 值 的 二 进 制 数 为则 依 公 式可知

           

    上式表明若将除以2则商为,而余数即为。同理,

    上式所得商再除以 2,有

                      

    即将除以2得到的商再次除以2,所得余数即为

    以此类推,反复将每次得到的商再除以 2,就可求得对应二进制的每一位了。


    乘2取整法的依据

    是一个十进制小数等 值 的 二 进 制 小数 为

           

    两边同乘2得

             

    即小数乘以 2 所得的乘积的整数部分就是,同理,将乘积的小数部
    分再乘以 2 可得:

             

    亦即其乘积的整数部分就是

    以此类推,将每次乘2得到的乘积的小数部分再次乘以2,就可求得对应二进制

    小数的每一位了。

    展开全文
  • 二进制数是机器的语言,它与我们常用的十进制数存在着转化的方式 十进制数转化二进制公式:1.整数部分:除2取余 2.小数部分:乘2取整; 或者用数轴法来计算该十进制数为哪几个2的幂的和,然后将相应位置1即可...
  • 十进制数转换为二进制数

    千次阅读 2014-02-20 20:15:51
    将余数倒置相连就得到整数部分对应的二进制数。 除2取余法的理论依据是,整数部分的权值是2的幂数,每次除2都是将整体的权值右移一位,模2是取得最右边的数值。 对于十进制数的小数部分,一般使用乘2取整法。 不断...
  • 第一部分:整数转换 逐次除2取余法用2逐次去除待...例子1: 将83转换成二进制数(逐次除2取余法) 得到的余数依次为: 1 0 1 0 0 1 1 可得到:(83)10=(1010011)2第二部分:小数转换 乘2取整法逐次用2去乘待...
  • 进制转换原理:假如我们从键盘输入一个二进制数1101,先看人工是如何转换成十进制的?我们只需要将二进制不同位上的数乘上它相应的权值即可,也就是1*2^0+0*2^1+1*2^2+1*2^3=13。也就是最后被输入的数字权值最低。...
  • 不同进制是指不同位置上数字对应的权值不同。 2进制对应的权值是以2为底的指数20,21....等 1001001转换为十进制的话是1+8+64=73 ...将整数部分辗转相除2,将余数倒序排列,即整数部分的二进制数 将...
  • 题目:求十进制数35.625的二进制数和十六进制。 十进制含小数在进行转换时,注意要将整数部分和小数部分区分开来。 整数部分: 要求二进制就用【除二取余法】,求十六进制就用【除十六取余法】,依次类推…… 则,...
  • 洛谷 P2104 二进制

    2019-09-25 15:34:44
    P2104 二进制 ...小Z最近学会了二进制数,他觉得太小的二进制数太...运算 3:将整个二进制数乘 2 运算 4:将整个二进制数整除 2 小Z很想知道运算后的结果,他只好向你求助。 (Ps:为了简化问题,数据保证+...
  • 想看看浮点运算的事情,突然忘记了十进制小数转换二进制... 采用乘2取整法,即每一步将十进制小数部分乘以2,所得积的整数部分(小数点左边的数字不是0就是1)作为二进制中的数字。第一次乘法所得的整数部分为最高位。
  • luogu P2104 二进制

    2018-08-09 14:57:10
    @luogu ...运算 3:将整个二进制数乘 2 运算 4:将整个二进制数整除 2 小Z很想知道运算后的结果,他只好向你求助。 (Ps:为了简化问题,数据保证+,-操作不会导致最高位的进位与退位) ...
  • 5.2 二进制数转字符串

    2020-04-12 16:57:07
         《程序员面试金典》(第六版)习题:仅为记录一下以加强印象...第一种方法利用的是十进制小数转二进制小数的乘2取整法。对于值为1的二进制小数位,第一位的值为2−1=0.52^{-1}=0.52−...
  • 首先,十进制数和所求的二进制表示方法表示的都是同一个数值,那么用十进制数乘2就相当于用其二进制乘2,即相当于二进制数小数点向右移位,当小数部分为零时,即意味着小数点移动到了最后一个有效位之后。...
  • 浮点数求二进制实际上就是除二取余的逆运算,先把原数乘二,0.625*2=1.25,小数点前面有1,就把那个1干掉,输出0.1,剩下0.25,再乘二等于0.5不足1,故在后面加0,这时输出为0.10,0.5再乘二恰好是1.0那么同
  • 十进制转化为二进制数的方法:从十进制数的最高位开始做10加次高位的操作,依次类推,即可求出二进制数的结果。 文章中的例子是在缓冲区中有5个十进制数的ASCII码值,然后将这5个十进制数转化成一个字,最后以16...
  • 一、十进制转二进制 将11转二进制 1、首先将十进制数除以2,直到不能再除 11/2 5,余1 5/2 2,余1 2/2 1,余0 ...11的二进制即为1011 ...二、二进制转十进制 ...1、将各位乘2 1 0 1 1 → 2 0 2 ...
  • 十进制整数转二进制: 就是把该十进制数,用二因式分解,取余。 以12为例,转为二进制 ...就是把该小数不断乘2,再取所得的整数部份,直至没有小数为止,但请注意并不是所有小数都能转到! 以0.875为例, 0.8
  • 二进制

    2021-01-31 15:08:52
    按权相加: 把二进制数首先写成加权系数展开式, 然后按十进制加法规则求和 十进制转二进制 整数部分: "除 2 取余, 逆序排列"法 **小数部分: " 2 取整, 顺序排列"法 ** **计算机中信息的存储单位 ** ...
  • 力扣190.颠倒二进制数

    2020-12-23 00:05:14
    整数反转思路一致,利用%运算得到最低位,次次权将其反转到最高位,注意原数字要不断除以权 代码 uint32_t reverseBits(uint32_t n) { long result=0; for(int i=0;i<32;i++){ result=result*2+n%2; n/=2; } ...
  • 题目解析:就让你double类型的小数转换成二进制,小数转换成二进制的机制就是乘二然后再剪掉1,剩下的接着乘2直到乘到0结束,如果乘完2有1就添加1,如果没有就添加0。 唯一一次内存和用时都超过100% 代码 class ...
  • 一、十进制转为二进制 1、十进制小数转二进制 ...方法二:二进制序列最右边开始,对应十进制值为20,往左依次为21、23、24、25、26、27…即二进制数从左往右第n位对应的十进制值为2n-1。一个十进制数,可以...
  • 在搭建乘法器,验证波形时,多比特二进制数手算比较麻烦,所以导入matlab计算正确的输出结果。 此时要注意乘法器的特性,举个例子吧 5 × 5 = 25 也就是4‘b0101(+5) * 4’b0101(+5) = 0011001(+25) 那 -5 × 5 = -...
  • 1.十进制转R进制 1.1 十进制转二进制 十进制整数转二进制 十进制整数转换成二进制采用“除2倒取余”。 十进制小数转二进制 十进制小数转换成二进制小数采用 “乘2取整,顺序排列...方法为:把二进制数按权展开、相加...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 934
精华内容 373
关键字:

二进制数乘2