精华内容
下载资源
问答
  • C++笔记:二进制与位运算 一、二进制 二进制二进制计数系统,用01串表示。 1.十进制转二进制: 整数部分,把十进制转成二进制一直用短除法分解至商为 0。读余数从下读到上,即是二进制的整数部分数字。 小数部分,...

    C++笔记:二进制与位运算

    一、二进制

    二进制指二进制计数系统,用01串表示。

    1.十进制转二进制:

    整数部分,把十进制转成二进制一直用短除法分解至商为 0。读余数从下读到上,即是二进制的整数部分数字。

    小数部分,则用其 2,取其整数部分的结果,再用计算后的小数部分依此重复计算,算到小数部分全为 0 为止,之后读所有计算后整数部分的数字,从上读到下。
    例:()请原谅本小娃的字写的一般请原谅本小娃的字写的一般
    2.二进制转十进制按权展开求和。不懂的话可以看一看例子。
    例:(看不见的那个地方是1。)呵呵
    3.二进制加减法:二进制加减法与十进制加减法的区别:将
    逢十进一改为逢二进一
    ,(其实差不多吗),
    例:(图片可能有点小)在这里插入图片描述

    二、位运算

    位运算有许多种,他在处理数据时,会自动将十进制化为二进制计算。(对不起大家,图可能有点不清楚,可看结尾我推荐的网站哦~)
    蕾蕾额咧咧咧咧李磊列里了
    本文为作者原创,不过本人再写十进制转二进制借鉴了一点计蒜客的解释写的,谢谢计蒜客(但本文非转载,也非翻译)。
    如果想看一看计蒜客关于这方面的解释,可看:
    https://www.jisuanke.com/course/8387/438017

    https://www.jisuanke.com/course/8387/438019
    ,对位运算有兴趣可看https://blog.csdn.net/swty3356667/article/details/78703650?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159618527619195239845745%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=159618527619195239845745&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v3~pc_rank_v2-1-78703650.first_rank_ecpm_v3_pc_rank_v2&utm_term=%E4%BA%8C%E8%BF%9B%E5%88%B6%E4%B8%8E%E4%BD%8D%E8%BF%90%E7%AE%97&spm=1018.2118.3001.4187
    ,对二进制有兴趣可看
    https://blog.csdn.net/weixin_30741653/article/details/96401443?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159618536419195162537358%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=159618536419195162537358&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_click~default-2-96401443.first_rank_ecpm_v3_pc_rank_v2&utm_term=%E4%BA%8C%E8%BF%9B%E5%88%B6&spm=1018.2118.3001.4187
    懂了就点个赞,没懂就看懂为止哦~
    若本文描述有误,可在评论区留言~

    展开全文
  • 文章目录十进制转二进制机器数与真值原码、反码、补码顺便说一说BCD码数的定点表示与浮点表示IEEE 754标准定点运算加法与减法运算溢出浮点运算加法与减法运算 十进制转二进制 正整数转二进制,这个简单,除2取余,倒...

    十进制转二进制

    正整数转二进制,这个简单,除2取余,倒着写。
    容易忽略的是小数,乘2取整,正着写。

    负数的话,在计算机中要用补码,因为计算机中加减乘除都得用加法。

    机器数与真值

    把符号“数字化”的数称为机器数。
    把带“+”或“-”符号的数称为真值。

    原码、反码、补码

    正数最简单,原码、反码、补码都一样。
    例:
    真值:+1110(已经二进制)
    原码:01110(0表示符号为正)
    反码:01110
    补码:01110

    负数复杂一点,
    例1:
    真值:-1110(已经二进制)
    原码:11110(1表示符号为负)
    反码:10001(符号位不变)
    补码:10010(取反加1)
    例2:
    真值:-0.1101(已经二进制)
    原码:1.1101(由1-(-0.1101)得到,其实就是“-0”换成1)
    反码:1.0010(符号位不变)
    补码:1.0011(取反加1)

    注意:
    [+0.0000]=0.0000
    [+0.0000]=0.0000
    [+0.0000]=0.0000


    [-0.0000]=1.0000
    [-0.0000]=1.1111
    [-0.0000]=0.0000

    顺便说一说BCD码

    它是用4个二进制表示一个十进制,24=16,所以表示十进制时有6个剩余,只需从
    0000-1111 (16个)中选10个即可表示十进制。

    8421码:0000-1001
    2421码:0000-1111、0001-1110…它是一对一对的,这样选10个
    余3码:0011-1100 前后各去3个,也是对称的。

    数的定点表示与浮点表示

    定点:
    在这里插入图片描述
    浮点:
    在这里插入图片描述
    直接通过例子说明:将-54表示成二进制定点数和浮点数。设浮点数字长16位,其中阶码5位(含1位阶位),尾数11位(含1位数符)。

    定点机中:
    真值:-110110
    原码:10000110110(符号1位负,数值10位)
    反码:11111001001
    补码:11111001010

    ***浮点机中:***(类笔着科学计数法来想)
    浮点数表示:-0000110110
    规格化:-(0.1101100000)x 2110 (注意:110是二进制,即右移6位才和原来相等)
    这样阶码、尾数就有了。
    原码:0,0110;1.1101100000
    反码:0,0110;1.0010011111
    补码:0,0110;1.0010100000

    补充:
    同样以n=10;m=4,阶符和数符各取1位。
    在这里插入图片描述

    IEEE 754标准

    在这里插入图片描述
    在这里插入图片描述
    阶码的真值都被加上一个常数。短实数加7FH,长实数加3FFH。临时实数加3FFFH。
    例:
    数值:178.125
    二进制:10110010.001
    浮点表示:1.0110010001 x 2111 (1.xxx的形式,最后表示时,省略(不写)那个1)
    此时的阶码是:00000111,加上01111111(7FH)得10000110:
    短实数表示为 10000110 01100100010000000000000(总的31位)

    注意: 逆推的时候得记得加上1.xxx

    定点运算

    加法与减法运算

    整数:[A]+[B]=[A+B](mod 2n+1
    小数:[A]+[B]=[A+B](mod 2)

    整数:[A-B]=[A]+[-B](mod 2n+1
    小数:[A-B]=[A]+[-B](mod 2)

    例1:
    A=0.1011,B=-0.0101,求[A+B]
    [A]=0.1011,[B]=1.1011
    [A+B]=0.0110

    例2:
    A=+15,B=+24,求[A-B]
    [A]=0,0001111,
    [B]=0,0011000,[-B]=1,1101000 ([B]连着符号位取反加1)
    [A-B]=1,1110111

    由上可知:不论操作数是正还是负,在做补码加减法时,只需将符号位和数值部分一起参加运算并且将符号位产生的进为自然丢弃即可

    溢出

    • 不论是做加法还是减法,只要两个操作数的符号相同,而结果又与原操作数符号不同,即为溢出。
      也就是将符号位产生的进位与最高有效位产生的进位异或操作,1则溢出,0则没有溢出。

    • 变形补码(2位符号位)
      当两位符号位不同时表示溢出,否则;无溢出。“10”表示负溢出;“01”表示正溢出。

      例1:
      x=+11/16 , y=+3/16
      [x]=00.1011;[y]=00.0011;
      [x+y]=00.1110 (00相同,无溢出)
      x+y=0.1110

      例2:
      x=-11/16 , y=-7/16
      [x]=11.0101;[y]=11.1001;
      [x]+[y]=10.1110;(10不同,负溢出)

    浮点运算

    加法与减法运算

    • 对阶
    • 尾数求和
    • 规格化
      左规:尾数的第一数值为与符号位相同需左规,尾数左移一位,阶码减1.
      右规:符号位不相同需右规,尾数右移一位,阶码加1.
    • 舍入
    • 溢出

    例1:
    x=0.1101 x 201 ,y=(-0.1010) x 211,求x+y。
    [x]=00,01;00.1101
    [y]=00,11;11.0110

    • 小阶向大阶看齐
      显然,要将x变为211 ,每右移一位,阶码加1
      [x]=00,11;00.0011

    • 尾数求和
      00.0011+11.0110=11.1001
      即[x+y]=00,11;11.1001

    • 规格化
      左规:
      [x+y]=00,10;11.0010

      故x+y=(-0.1110) x 210

    例2:
    x=0.1101 x 210 ,y=0.1011 x 201,求x+y。
    [x]=00,10;00.1101
    [y]=00,01;11.1011

    • 小阶向大阶看齐
      显然,要将y变为210 ,每右移一位,阶码加1
      [y]=00,10;00.0101

    • 尾数求和
      00.1101+00.0101=01.0010
      即[x+y]=00,10;01.0010

    • 规格化
      右规:
      [x+y]=00,11;00.1001

      故x+y=0.1001 x 211

    返回顶部

    展开全文
  • 二进制运算

    2021-04-19 13:21:44
    二进制加法、减法、以及十进制小数转换为二进制小数一、二进制的加法二、二进制的减法三、十进制小数转为二进制小数总结 发这篇文章的初衷源于计算机组成原理这门课,上课的时候发现我除了二进制十进制转换,别的都...

    二进制加法、减法、以及十进制小数转换为二进制小数

    发这篇文章的初衷源于计算机组成原理这门课,上课的时候发现我除了二进制十进制转换,别的都不会,进过一系列查找,初步搞懂了一丢丢,下面我将我的心得分享给大家。

    一、二进制的加法


    首先我们在做二进制加法运算的时候要清楚,二进制是满2进位,与十进制的满10进位很类似,下面我们来一步步分析下面的图
    我们分析的顺序是从右自左,从上自下
    在这里插入图片描述


    1+1=2满2进1下面取0,将进位的1分配给0+1的式子中,得到0+1+1=2,满2进1下面取0。
    将进位的1分配给1+1的式子中,得到1+1+1=3,满2进1下面取1。
    再将进位的1分配给1+1的式子中,得到1+1+1=3,满2进1下面取1。
    再将进位的1分配给0+1的式子中,得到0+1+1=2,满2进1下面取0。
    再将进位的1分配给1+0的式子中,得到1+0+1=2,满2进1下面取0。
    因为前面没有可加的数了,所以进的1自然落。

    二、二进制的减法


    我们分析的顺序是从右自左,从上自下
    在这里插入图片描述


    1-1=0;0自然落下 .
    0-1不够减1,向前借1后加2变成2;2-1=1;
    1在前一步被借1所以减为0,0不够减1,向前借一后加2变成2,2-1=1;
    1在前一步被借1所以减为0,0不够减1,向前借一后加2变成2,2-1=1;
    0在前一步被借1所以减为-1,-1不够减1,向前借一后加2变成1,1-1=0;
    1在前一步被借1所以减为0,0-0=0

    三、十进制小数转为二进制小数


    我们的目标的将(0.125)10转换为(?)2

    还是通过图来看
    在这里插入图片描述


    我们的思路是将小数部分×2,和十进制整数转二进制很像。将乘完的数将整数部分取最终结果的第一位,接着取小数位,接着乘,直到小数位为0为止。
    我们的分析顺序是从上自下,取值顺序是从上向下取值。
    0.125×2=0.250 取整数位0
    0.250×2=0.500 取整数位0
    0.500×2=1.000 取整数位1
    最后得到的二进制小数为(0.001)2

    总结

    感谢观看,有什么问题请第一时间回复我,谢谢!!!

    在这里插入图片描述

    展开全文
  • 二进制 1 2 4 8 16 32 64 128 512 1024 2048 概念:二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二,相当于十进制的计算 表示: 小数表示例子: php中二...

    二进制 1 2 4 8 16 32 64 128 512 1024 2048

    概念:二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二,相当于十进制的计算

    表示:

    小数表示例子:

    php中二进制表示,由于二进制是整数的一种表达方式,所以php中浮点数无二进制表示

    $a = 0b101011

    运算

    加法:逢2进1

     

    减法:借1当2

     乘法:乘法表

    例子:

    除法:

    十进制

    二进制,注意不够除则补0,跳到下一位

    特殊算法:拈加法

    拈加法二进制是加减乘除外的一种特殊算法。

    拈加法运算与进行加法类似,但不需要做进位。此算法在博弈论(Game Theory)中被广泛利用。

    PHP中计算:

    echo $a = 0b11000;//24

    echo $b = 0b111;/7

    echo $a+$b;//31

    echo $a-$b;//17

    echo $a*$b;//168

    echo $a/$b;//3.4285714285714

    位运算

    位运算符允许对整型数中指定的位进行求值和操作,注意不可等于and,and为逻辑运算符

    $a = 0b11011;//27

    $b = 0b101; //5

    按位与&

    echo $a & $b;//1

    按位或|

    echo $a | $b;//31

    按位异或^

    echo $a ^ $b;//30

    按位取反~,&|^三个运算均需要1才会是1,所以计算时,不需要补全位数,取反就不一样了,以32位为例

    echo ~$a;//-28???不是4

    首先要知道,在计算机中,负数以其正值的补码形式表达

    这样我们就要知道三个概念了,原码,反码和补码,参考

    https://www.cnblogs.com/fangchunying/p/9022783.html

    1、正数的原码、补码、反码均为其本身;
    2、负数(二进制)的原码、补码、反码公式:
    反码 = 原码(除符号位外)每位取反
    补码 = 反码 + 1
    反码 = 补码 - 1

     三种类型的码为了更好的运算而进化而来,所以目前数据在内存中始终是以二进制形式存放的,数值是以补码表示的,在计算机运算的时候,都是以补码的方式来运算的,计算而来的也是补码,

     回到27取反,为-28

    printf("%b", ~$a);将会打印出补码

    左移<< 向左移动,每移动一位相当于乘以2,移动一位相当于每一位都乘以2,相加而来的总数也是乘以2

    由于位移操作的运算速度比乘法的 运算速度高很多。因此在处理数据的乘法运算的时,采用位移运算可以获得较快的速度

    将所有对2的乘法运算转换为位移运算,可提高程序的运行效率

    右移>>向右移动,并舍弃出界的数字,移动一位相当于除以2,

    - 1 0 10进制
    1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 原码
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 反码
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 补码   >>2
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 补码
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 反码
    1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 原码
    - 3 10进制

    -10>>2 = -3 -12>>2 = -3 -13>>2=-4

     用处

    1、权限管理

    2^0=1,相应2进数为”0001“ 代表只读权限

    2^1=2,相应2进数为”0010″ 代表写入权限
    2^2=4,相应2进数为”0100″ 代表上传权限
    2^3=8,相应2进数为”1000″ 代表删除权限

    或运算 7=4|2|1  相当于是只读、写入、上传得集合

    如何判断是否有权限呢

    与运算符

    $key = 13

    if($key & 8) 代表有删除权限

    2、其他运用

    判断奇偶

    a&1 = 0 偶数

    a&1 = 1 奇数

    取int型变量a的第k位 (k=0,1,2……sizeof(int)),即a>>k&1

    将int型变量a的第k位清0,即a=a&~(1<<k)

    将int型变量a的第k位置1,即a=a|(1<<k)

    转载于:https://www.cnblogs.com/ValleyUp/p/10950238.html

    展开全文
  • 二进制

    2019-09-07 07:15:46
    计算机是由集成电路(IC)构成。因为IC的引脚只有0V和5V两种状态,所以计算机只能识别二进制数,0/1。0V用0表示5V用1表示。 计算机可以用二进制表示几乎所事物。例如图片,声音,视频,字符,...二进制减法运算 ...
  • 学好数学重点是打好基础,数学成绩不好的根源就是基础不牢,今天为大家整理了小学数学知识点汇总,希望可以帮到大家。go go go知识点-Knowledge Point-专注数学2-4小数...依次类推2-5小数减法计算法则计算小数加...
  • 减法: 整数: [A-B]补 = [A]补 + [-B]补 (mod 2^(n+1)) 小数: [A-B]补 = [A]补 + [-B]补(mod 2) [-B]补的求法就是 [B]补的连同符号位在内,每位求反加一 ps:这里假定了A,B都是正数 如果你直接写出了负数的补码...
  • 这里写目录标题一.进制运算的基本知识1.1 ...二进制的运算3.1 定点数与浮点数3.1.1 定点数的表示方法3.1.2 浮点数的表示方法3.1.3 定点数与浮点数的对比3.2 定点数的加减法运算3.3 浮点数的加减法运算3.4 浮点数的乘...
  • 论述:定点小数运算

    千次阅读 2019-03-24 22:45:37
    目录论述:定点小数运算十进制下非负定点小数的乘法十进制下非负定点小数的加法十进制下非负定点小数的除法二进制下定点小数的乘法二进制下定点小数的加法二进制下定点小数的除法等等,是不是漏了减法......
  • 浮点数的减法运算

    千次阅读 2016-04-25 10:48:35
    java: System.out.println( (3 - 2.6) == 0.4);   结果是false 根据调试 System.out....由于计算机内部以二进制保存,所以十进制的有限位的小数,在计算机内部会是一个无限位的小数。 例如 十进制的0.9虽
  • 前面讲述了十进制整数和小数在计算机里面的存储,但是计算机终究是用来做计算的机器,归根到底它的作用还是用来计算,这一小节就来讲解一下存储在计算机中的二进制数是如何来运算的。首先我们来一起看一下二进制加法...
  • 浮点数加减法运算步骤

    千次阅读 2019-04-30 17:37:35
    其中MxM_xMx​为该浮点数的尾数,一般为绝对值小于1的规格化的二进制小数,机器中多用原码(或补码)形式表示。ExE_xEx​为该浮点数的阶码,一般为二进制整数,机器中多用移码(或补码)表示,给...
  • 当js做小数运算时存在bug,大概是因为二进制和十进制转换之间的关系。 bug如图 解决方案 1.加减法可以用参数乘以1000再用结果除以1000。 乘除法可以用参数分别*100进行计算后在除以10000 2.使用toFixed()...
  • 运算方法和运算部件进制的表示与转换十(进制的表示十、、十六、八进制之间的转换十进制数的编码与运算加法减法原码补码 进制的表示与转换 十(进制的表示 十、、十六、八进制之间的转换 对应关系 有...
  • 从未开化到文明 数的黎明 一一对应 分割而不变 数的语言 数词的发展 手指计算器 金字塔 进制 十二进制 六十进制 ...小数的意义 ...分数和小数 ...循环小数和分数 ...非循环小数 ...减法运算 ...
  • 其中Mx为该浮点数的尾数,一般为绝对值小于1的规格化的二进制小数,机器中多用原码(或补码)形式表示。Ex为该浮点数的阶码,一般为二进制整数,机器中多用移码(或补码)表示,给出的是一个指数的幂,而该指数的底常用2...
  • 文章目录计算机组成原理 —— 计算篇进制运算的基础知识二进制数据的...小数二进制补码表示二进制数据的运算a.定点数与浮点数b.定点数的加减法运算c.浮点数的加减法运算d.浮点数的乘除法运算 计算机组成原理 ——...
  • 定点数的表示和运算

    2020-10-08 16:54:56
    文章目录定点数的表示和运算定点数的表示有符号数和无符号数机器数定点表示机器数表示方法定点数的运算定点数移位运算原码定点数的加减法运算补码定点数加减法运算符号扩展溢出概念和判断方法定点数的乘法运算定点数...
  • 定点数表示与运算

    2020-07-17 12:51:36
    定点数表示与运算定点数的表示无符号数与有符号数的表示机器数的定点表示原码、补码、反码、移码定点数的运算定点数的移位运算原码定点数的加减法运算 定点数的表示 无符号数与有符号数的表示 1.无符号数 指整个机器...
  • 整数类型 小数类型 高精度要求的时候建议使用decimal,浮点数不建议减法和比较,容易出现问题, ...二进制 算术运算 加减 乘除取余 除以0返回NULL 关系运算 相等:(不能比较null) ...
  • 由于二进制的设计,所以计算机中的小数不可能达到准确的,只能达到部分准确。想安全的运算有两种办法 不拿小数运算,而是当成整数来运算。(属于极端情况) 忽略后面不影响程序的小数部分。 -补码 做减法时...
  • 浮点减法减不断

    2010-12-27 10:17:45
    现在有如下表达式: System.out.println(2.00-1.10); 请问输出结果是?...这里的答案是:0.8999999999999999...1、小数二进制表示问题 首先我们要搞清楚下面两个问题: (1) 十进制整数如何转化为二进制数 ...
  • 一 巩固习题 除了十进制以外,这个世界上常见的还有什么进制?...0有两种表示方法,减法运算复杂。 请计算12、124、1023、-1、-127的二进制原码。 12(0b1100)、124(0b1111100)、1023(0b1111111111)、-1(-0b1)、-127
  • 运算时我们发现题目基本会给机器字长8位这么一句话,但是打个比方3换为二进制是11只有两位,但是当它和6相加时就会出现问题,因为6是110,这个时候符号扩展就很有用了。 对于正数来说符号扩展很简单,附加位直接写...
  • 周总结

    2021-01-31 18:15:17
    文章目录快速排序快速排序归并排序逆序对分(整数)分(小数)高精度高精度加法高精度减法高精度乘法高精度除法前缀和差分前缀和子矩阵的和差分差分矩阵双指针最长连续不重复的子序列数组元素的目标和判断子...
  • 关于float计算结果不精确问题

    千次阅读 2016-09-21 23:00:44
    参考文章:Java Float类型 减法运算时精度丢失问题 今天参加面试,面试官问到一个问题,两个float相除怎么证明是否整除,我提出了几个方法,他提示我精度有可能会丢失,然后我就懵逼了,回来搜索了一下发现float和...
  • 运算方法原码、补码、反码、移码浮点数算术移位加减法运算乘法运算原码一位乘Booth算法(补码乘法)除法运算恢复余数法加减交替法 承接计算机组成原理复习(2) 5. 运算方法 先来讲一讲各种码吧; 原码、补码、...
  • 设计的java计算器应用程序可以完成加法、减法、乘法、 除法运算,n次方/方根,括号,能显示每步的计算结果,...数的保留两位小数以及二进制、八进制、十进制、十六进制之间的 相互转换。具体参考windows附件下的计算器

空空如也

空空如也

1 2 3
收藏数 42
精华内容 16
热门标签
关键字:

二进制小数减法运算