精华内容
下载资源
问答
  • 有趣的二进制算法小魔术

    千次阅读 2019-02-15 10:38:40
    有趣的二进制算法小魔术
                   

        你对星座有兴趣吗?传说星座与人的性格、命运、爱情、事业、友情、家庭都有紧密联系,不过魔术师说,那些都是浮云。“我今天为你表演一个靠谱的,我要用心灵来感知你的星座。如果你对星座一无所知,就先看一下下面这张表吧,一年一共有十二个星座,你属于哪一个星座取决于你的出生日期。”

        这个魔术其实很简单,魔术师会先后展示给观众 A、B、C、D 四张图片,每一次观众只需要仔细看一看,自己的星座有没有位列其中。

        举个例子,如果你是史上最不幸的、每四年才可以过一次生日的那个人,出生日期是 2 月 29 日,那你的星座一定是双鱼座。这样,你的星座只有在图片 C 和 D 中才可以看到,在图片 A、B 中都看不到。把这个结果告诉魔术师,魔术师经过一番心灵感应后,就可以确定你是双鱼座。

    魔术揭秘

        对于不明真相的围观者来说,这个魔术会显得很神奇。不过,一部分理工男却能一眼看穿魔术的蹊跷之处。魔术师具体的做法是,首先在心里安装一个“计数器”,一开始数字为 0。如果你的星座出现在了卡片 A 中,魔术师就会在计数器上加 1,否则计数器数字不变;如果图片 B 中有你的星座,他就会再加上 2 ;图片 C 中有你的星座,计数器就加上 4;图片 D 中有你的星座,计数器就会加 8。计数器最后得到的数字就是答案了。比如按照刚刚那位“生日帝”告诉魔术师的结果,计数器的数字就是 4 + 8 = 12。然后,让文章开头那张图中隐藏的数字显示出来:

        数字对应的结果就是心灵感应到的星座了。

    二进制计数法

        正常情况下,数字 12 可以写成 1×10 + 2×1,其中 1 是十位数字,2 是个位数字。如果这个数字更大,还会有百位、千位等等。这些数位的单位从小到大分别是 1、10、100、1000⋯⋯

        可是我们还可以用另一种方式来表示一个数,就是魔术师所用的方式——二进制。在二进制中,12 = 1×8 + 1×4 + 0×2 + 0×1,在这里,数位的单位由 1、10、100、1000 变成了 1、2、4、8,同时每个数位上的数字也由 0 到 9 十种变为了 0 和 1 两种,12 也就可以用 1100 来表示了。卡片 A、B、C、D 分别是从小到大的 4 个数位,由于 12 号星座——双鱼座——的二进制表达是 1100,因此双鱼座就只在卡片 C 和 D 上出现。在四张卡片上指认星座的时候,你也就把星座对应的数字的二进制表达偷偷泄露给了魔术师,如果你告诉魔术师有,就相当于告诉他了那一位数字是 1,反之,那一位数字就是 0。

        二进制的用途非常广泛。计算机正是像这位魔术师一样,用二进制来表示各种数字。

     

    转自【http://www.guokr.com/article/5196/】

     

     

     

     

     

               

    再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

    展开全文
  • 八进制转二进制计算器八进制数:二进制数:进制:进制:转换说明:上面第一行可将八进制转换为二进制,第二行可以将任意进制转换为任意进制。64个基数为:"[emailprotected]"注意:本...二进制与八进制转换算法八...

    八进制转二进制计算器

    八进制数:

    二进制数:

    进制:

    进制:

    转换说明:上面第一行可将八进制转换为二进制,第二行可以将任意进制转换为任意进制。

    64个基数为:

    "[email protected]"

    注意:本工具只是各种进制计数法的数之间的转换,计算机表示数的方法是进行编码表示,整数有整数的表示方法,浮点数有浮点数的表示方法,所以本工具不能直接把计算机中的二进制编码表示的数转换为八进制数。

    二进制与八进制转换算法

    八进制是“逢八进一位,借一位当八”,因为三位二进制正好能表示所有八进制的基数,所以二进制与八进制的转换就比十进制与二进制的转换要简单一些,二进制转换为八进制直接把二进制三位为一组,每组转换为八进制基数就可得到八进制数,相反即可直接把八进制转换为二进制。下面我们来看详细转换方法:

    1、首先我们要掌握最基本的就是3位二进制数正好能表示8进制的所有基数,记住它们之间的对应关系,如下图所示。

    1-16102514164SS.jpg

    2、二进制转换为八进制的方法就是取三位组合为一位法,二进制的整数部分从右往左三位为一组,小数部份从左住右三位为一组,最后不足三位整数部分在左边加0,小数部分在右边加0.

    1-161025141H3U7.jpg

    3、分好组后,对照二进制与八进制对应关系表(如图1所示),将三位二进制按权相加得到一位八制制基数,然后按顺序排列,小数点的位置不变哦,最后得到的就是八进制数,如图3所示:

    1-161025141JN02.jpg

    需要注意的是,在向左(或向右)取三位时,取到最高位(最低位)如果无法凑足三位,就可以在小数点的最左边(或最右边)补0。进行换算,如图4所示。

    1-161025141Q14V.jpg

    4、将八进制转换为二进制,直接将每位8进制基数按照二进制与八进制对应关系表转换为2进制数,依次排列就得到了二进制数,如图5所示。

    1-161025141T5352.jpg

    二进制与八进制之间的互相转换到这里就OK啦,不是很难吧?这里需要注意的是大家在做添0补位的时候,是在小数点最左边或最右边才能添0,如图6所示,不然会出错的哦。

    1-161025142140119.jpg

    展开全文
  • 菜鸟学院教程 Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。 位运算符作用在所有的位上...它们的二进制格式表示将如下: A = 0011 1100 B = 0000 1...

    http://www.runoob.com/java/java-operators.html
    菜鸟学院教程
    Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。
    位运算符作用在所有的位上,并且按位运算。假设a = 60,b = 13;它们的二进制格式表示将如下:
    A = 0011 1100
    B = 0000 1101
    A&b = 0000 1100
    A | B = 0011 1101
    A ^ B = 0011 0001
    ~A= 1100 0011
    在这里插入图片描述
    事实上在上述的二进制表达中其实int型的数字总共有32位例如:
    A=0000 0000 0000 0000 0000 0000 0011 1100;
    那么~A=1111 1111 1111 1111 1111 1111 1100 0011;如果二进制的最高位为1,那么此二进制数转化的十进制数就为负数,转化方法为先按位取反,然后加1,得到负数绝对值的二进制码,然后转为十进制,加上符号。
    例如:求~A的值:
    1.先按位取反=0000 0000 0000 0000 0000 0000 0011 1100;
    2.加一=0000 0000 0000 0000 0000 0000 0011 1101;
    3.转为十进制=1+4+8+16+32=61;
    4.加上负号=-61

    展开全文
  • 十进制整数转换成二进制采用“除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位二进制所对应的十进制数值,对进制转换以及类似题目的理解非常有用:

    11111111B
    1286432168421D

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


    例题: 135D = ______ B

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

    展开全文
  • Win10计算器怎么算二进制(方式一)一、是打开win10...六、在键盘上输入1000二进制数,:七、输入键盘:+101010八、按键盘上的回车键,得到二进制数1000、101010的和为110010,如下图红色圆圈所示:九、打开计算机...
  • 二进制,十进制,十六制算法一.在计算机应用中,二进制使用后缀b表示;十进制使用后缀d表示,十六制使用后缀H表示。二.二进制,十六进制与十进制的计算转换1.二进制转换为十进制计算公式:二进制数据X位数字乘以2的X...
  • 在本文中,我将比较线性搜索和二进制搜索算法。 您将看到每种算法的伪代码,以及示例和实现每种方法的逐步指南。 介绍 作为程序员,您想找到问题的最佳解决方案,以使您的代码不仅正确而且高效。 选择次优算法可能...
  • 进制转十六进制计算器十进制:十六进制进制进制:转换说明:上面第一行可将十进制转换为十六进制,第行可以将任意进制转换为任意进制。64个基数为:"[emailprotected]"注意:本工具只是各种进制计数法的数...
  • 流行的二进制搜索算法的迭代实现,用于在排序数组中查找元素。 (An Iterative implementation of the popular binary search algorithm to find an element in a sorted array.) Hello everyone! I have publ...
  • 正文 快速认识 为了快速了解这个算法,我觉得先看一个小例子比较合适: 我们假设的二进制数为8位(11110011),如何将其转换为BCD码呢? 8位2进制数最大能表示的数字为255,用BCD码表示,需要12位来表示。上面的...
  • Win10计算器怎么算二进制?随着科技的发展,计算机已经成为人们日常生活中不可缺少的工具,当我们周围没有二进制计算器时,我们可以在计算机中打开计算机进行计算。接下来小编给大家详细的说下Win10计算器怎么算...
  • 二进制算数运算教程

    2014-09-14 17:04:38
    介绍机器数运算规则,学习机器数计算的同学用得着。
  • 今天给大侠带来一表透彻 二进制转BCD之大四加三算法,话不多说,上货。 这里超链接几篇,给各位大侠参考。 基于FPGA的二进制转BCD设计(附代码) FPGA学习altera 系列 第二十三篇 二进制转BCD FPGA学习altera ...
  • 目录写在前面正文快速认识实现方式一实现方式写在最后写在前面FPGA基础知识极简教程(9)讲到了七段数码管的显示Verilog设计,我们都知道,要在数码管上显示的数字,使用BCD编码是具有优势的(或者是最正确的)。...
  • 二进制pythonHere you will learn about python binary ... 在这里,您将了解有关使用程序和算法进行python二进制搜索的信息。 In linear search, we have to check each node/element. Because of this, time com...
  • 二进制详解+集合算法的实现笔记

    千次阅读 2019-02-25 11:02:35
    因为array的下标是0到size-1,index>>3也就是index/8取整也就是index下标所在的字节,index&7 等价于 index & 0000000 00000111 ,就是取index二进制编码的低三位也就是相当于index>>3所剩下的余数,余数对应的十...
  • 3.8.十进制转换成二进制在你学习计算机的过程中,你可能已经接触了二进制二进制在计算机科学中是很重要的,因为存储在计算机内的所有值都是以 0 和 1 存储的。如果没有能力在二进制数和普通字符串之间转换,我们与...
  • 本次我们将学习python中关于二进制的运算的部分。 前提摘要 1.十进制转二进制 函数介绍:bin()函数用于将十进制数字转化为二进制数字 用法:bin(十进制数字) 例如计算十进制100的二进制数据 bin(100) ...
  • 二进制搜索法 java 介绍 (Introduction) In this tutorial, we are going to learn about the Binary Search... 在本教程中,我们将学习二进制搜索算法并在Java中实现它。 Normal Linear or sequential search algo...
  • 快速上手二进制

    2021-02-22 17:03:21
    作为一个普通的java程序猿,最近想学一学算法,有一些东西涉及到二进制,当初基础没打好,二进制老是忘啊,一时理解,过后又忘了,刚才自己整理一篇文章记录一下理解(偏白话,不喜勿喷),方便以后理清思路,快速...
  • 本文实例讲述了Python实现的十进制小数与二进制小数相互转换功能。分享给大家供大家参考,具体如下:十进制小数 ⇒ 二进制小数乘2取整对十进制小数乘2得到的整数部分和小数部分,整数部分即是相应的二进制数码,再用...
  • 我们的指南将指导您如何制作六种不同的二进制搜索算法。 在经典的Scrimba风格中,它包含了许多挑战,因此您将获得所需的肌肉记忆力,以提高自己作为软件开发人员的技能,并更好地应对未来的算法。 You'll learn: 您...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 25,638
精华内容 10,255
关键字:

二进制算法教程