二进制

<div class="article-header-box">
    <div class="article-header">
        <div class="article-title-box">
            <h1 class="title-article" id="articleContentId">二进制</h1>
        </div>
        <div class="article-info-box">
            <div class="article-bar-top">
                <img class="article-type-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/reprint.png" alt="">
                <div class="bar-content">
                <a class="follow-nickName" href="https://me.csdn.net/weixin_30741653" target="_blank" rel="noopener">weixin_30741653</a>
                <span class="time">2019-04-02 09:11:00</span>
                <img class="article-read-img article-heard-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/articleReadEyes.png" alt="">
                <span class="read-count">1038</span>
                <a id="blog_detail_zk_collection" class="un-collection" data-report-click="{&quot;mod&quot;:&quot;popu_823&quot;,&quot;spm&quot;:&quot;1001.2101.3001.4232&quot;,&quot;ab&quot;:&quot;new&quot;}">
                    <img class="article-collect-img article-heard-img un-collect-status" style="display:inline-block" src="https://csdnimg.cn/release/blogv2/dist/pc/img/tobarCollect.png" alt="">
                    <img class="article-collect-img article-heard-img collect-status" style="display:none" src="https://csdnimg.cn/release/blogv2/dist/pc/img/tobarCollectionActive.png" alt="">
                    <span class="name">收藏</span>
                    <span class="get-collection">
                        20
                    </span>
                </a>
                </div>
            </div>
            <div class="blog-tags-box">
                <div class="tags-box artic-tag-box">
                </div>
            </div>
            <div class="up-time"><span>最后发布:2019-04-02 09:11:00</span><span>首次发布:2019-04-02 09:11:00</span></div>
            <div class="slide-content-box">
                <div class="article-source-link">
                    原文链接:<a href="http://www.cnblogs.com/kancy/p/10640492.html" target="_blank" rel="noopener">http://www.cnblogs.com/kancy/p/10640492.html</a>
                </div>
            </div>
            <div class="operating">
                <a class="href-article-edit slide-toggle">版权</a>
            </div>
        </div>
    </div>
</div><article class="baidu_pl">
    <div id="article_content" class="article_content clearfix">
    <link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/ck_htmledit_views-b5506197d8.css">
            <div id="content_views" class="htmledit_views">
                <div id="cnblogs_post_body" class="blogpost-body cnblogs-markdown">

二进制是计算技术中广泛采用的一种数制。 二进制数据是用0和1两个数码来表示的数。

二进制的表现形式

计算机中的符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。

正数在计算机中以原码的形式存在,而负数以补码的形式存在。

原码反码补码
正数(5)0000 01010000 01010000 0101
负数(-5)1000 01011111 10101111 1011
小数(5.125)0101.0010101.0010101.001
  1. 原码:符号位+数据位,正数符号位位0,负数符号位为1;

  2. 正数的原码和补码相同;负数的反码等于其原码符号位不变,其余各位取反;

  3. 正数的原码和补码相同;负数的补码等于其原码取反加一;负数的原码等于其补码符号位不变,减一取反。

原码

负数:-5

原码:1000 0101

反码

负数:-5

原码:1000 0101

反码:1111 1010

补码

负数:-5
原码:1000 0101(符号位+数据位)
反码:1111 1010 (符号位不变,各位取反)
补码:1111 1011 (反码+1)

二进制的转换

二进制转十进制
正整数

二进制:0000 0101

十进制:1 + 0*2 + 1*2*2 = 5

负整数

二进制:1111 1011(负数以补码形式存在)

十进制:

  • 二进制反码:1111 1010
  • 二进制原码:1000 0101
  • 二进制原码转十进制:- 1+0*2+1*2*2 = -5
小数

二进制:0101.001
十进制:

  • 整数部分:0101 = 5
  • 小数部分:1000 = 0*1/2 + 0*1/4+ 0*1/8=0.125
  • 合并:5+0.125 = 5.125

1553853009607.png

十进制转二级制
正整数

十进制:5
二进制:0000 0101

负整数

十进制:-5
二进制:

  • -5的原码:1000 0101
  • -5的反码:1111 1010
  • -5的补码:1111 1011
小数

十进制:5.125
二进制:0101.001

1553852978806.png

二进制的运算

运算符号
  • 四则运算(+-*/)
  • &(按位与)
  • |(按位或)
  • ^(按位异或)
  • ~(按位取反)
  • <<(按位左移)
  • >>(有符号的按位右移)
  • >>>(无符号的按位右移)
运算逻辑
(1)二进制数的加法

根据“逢二进一”规则,二进制数加法的法则为:

0+0=0
0+1=1+0=1
1+1=0 (进位为1)
1+1+1=1 (进位为1)

例如:1110和1011相加过程如下:

img

(2)二进制数的减法

根据“借一有二”的规则,二进制数减法的法则为:

0-0=0

1-1=0

1-0=1

0-1=1 (借位为1)

例如:1101减去1011的过程如下[1]:

img

(3)二进制数的乘法

二进制数乘法过程可仿照十进制数乘法进行。但由于二进制数只有0或1两种可能的乘数位,导致二进制乘法更为简单。二进制数乘法的法则为:

0×0=0

0×1=1×0=0

1×1=1

例如:1001和1010相乘的过程如下:

img

由低位到高位,用乘数的每一位去乘被乘数,若乘数的某一位为1,则该次部分积为被乘数;若乘数的某一位为0,则该次部分积为0。某次部分积的最低位必须和本位乘数对齐,所有部分积相加的结果则为相乘得到的乘积。

(4)二进制数的除法

二进制数除法与十进制数除法很类似。可先从被除数的最高位开始,将被除数(或中间余数)与除数相比较,若被除数(或中间余数)大于除数,则用被除数(或中间余数)减去除数,商为1,并得相减之后的中间余数,否则商为0。再将被除数的下一位移下补充到中间余数的末位,重复以上过程,就可得到所要求的各位商数和最终的余数。

例如:100110÷110的过程如下:

img

所以,100110÷110=110余10。

说明:乘除法分原码乘法和补码乘法。

(5)逻辑“或”运算

又称为逻辑加,可用符号“+”或“∨”来表示。逻辑“或”运算的规则如下:

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。计算时,要特别注意和算术运算的加法加以区别。

(6)逻辑“与”运算

又称为逻辑乘,常用符号“×”或“· ”或“∧”表示。“与”运算遵循如下运算规则:

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。

(7)逻辑“非”运算

又称为逻辑否定,实际上就是将原逻辑变量的状态求反,其运算规则如下:

可见,在变量的上方加一横线表示“非”。逻辑变量为0时,“非”运算的结果为1。逻辑变量为1时,“非”运算的结果为0。

(8)逻辑“异或”运算

“异或”运算,常用符号“”或“”来表示,其运算规则为:

00=0 或 00=0
01=1 或 01=1
10=1 或 10=1
11=0 或 11=0

可见:两个相“异或”的逻辑运算变量取值相同时,“异或”的结果为0。取值相异时,“异或”的结果为1

转载于:https://www.cnblogs.com/kancy/p/10640492.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值