精华内容
下载资源
问答
  • 大家好,大飞来了!之前突发奇想想一个关于十进制转化...【1】十进制我们最熟悉,我在这里不多解释,只说十进制怎么运算,例如302,可以看成从右往左以索引倒叙分别从0开始,进行注释。如图所示1接下来我们用十...

    大家好,大飞来了!

    之前突发奇想想做一个关于十进制转化成二进制的想法,在这里给大家讲解一下。

    关于数字有多进制的,十进制、二进制、三进制、八进制、十六进制....等等。对我们最熟悉的莫过于十进制和二进制了,接下来给大家讲解下如何实现将十进制转化为二进制。

    【1】十进制我们最熟悉,我在这里不多做解释,只说十进制怎么运算,例如302,可以看成从右往左以索引倒叙分别从0开始,进行注释。

    bef6b84aba4b47a0bda925204d34430e

    如图所示1

    接下来我们用十进制开始进行运算,下行索引倒叙为十进制10的指数,数字作为乘数,然后进行相加。

    bf1d7de166ab4b95b515257ca96bfd2b

    十进制整数转换为二进制整数 十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。

    我们还是以302来进行举例:

    ea3a1c7aff10418c9fa9e4bc7ab7c98e

    所以它的二进制就是100101110,将二进制转化回来也是同样的道理,只不过底数变成了2,我们看下:

    7b008ce0d92c4552b0bf73bce8fb9a24

    到这里我们基本十进制转化为二进制的原理理解清楚了。

    【2】接下来我们进入到编程:

    0ce0ef8fbd924ee0b6385189cc00fd90

    1、产生数字:

    在这里我们可以采用按键选取自己指定的数字num,大飞在这里优先建议大家采用这个方法,其次如果不想选数字,也可以随机产生

    e8af9ac3ef024ec3998451764a78d801

    图片2

    2、运算选取的数字num使其除2直至为0

    这里可以将除后的值再次给到num,因为除一次后num也没作用了可以当下次的商,哈哈对num就是这么无情。

    其次就是取每次的模变量yu,运用高级运算里面的Modulo,把yu按照索引写入数组中,疯狂循环除。

    直到!我们的商num的值小于1位置,或者小于等于0,都可以,这是一个触发条件。当条件触发后我们需要再次写入一次,相当于最后一次写入,因为最后一次运算程序先判断,但是我们还要余数,所以需要再次写入一次。

    715882755861472e94528d58b9a98dd4
    f90bd9dc4d8e44489dd4f269fa19730d

    这里我们可以用一个声音来检测余数是否写入数组成功,防止数据溢出。

    3、倒叙显示余数

    目前我们已经把十进制数字产生,并且把余数储存至数组里面,接下来我们要做的就是把它显示出来,因为二进制的显示是以倒叙的形式显示的,所以我们拿到新出锅的余数数组需要倒叙显示。

    方法有很多种:

    这里大飞是用按照索引输出,但是显示出来从屏幕后方,0号索引值显示在x=150位置上,接下来1号索引显示主机递减,显示在130,110,90....以此类推,以20递减。

    需要注意的是这里显示循环的次数是之前产生余数循环的次数,可以在最开始的产生余数循环内加一个变量专门计数,在我们显示循环的循环内循环制定的次数。

    d287895635e9417fbb7f39b78dbcef54
    展开全文
  • 今天题碰上一道其中需要十进制二进制之间的转换的问题。然后翻阅资料得知,在java中的integer类中就有一个方法可以实现这个操作,这个方法的名字是toBinaryString(),返回值类型是字符串。但是为了学好java,不...

    今天做题碰上一道其中需要十进制与二进制之间的转换的问题。然后翻阅资料得知,在java中的integer类中就有一个方法可以实现这个操作,这个方法的名字是toBinaryString(),返回值类型是字符串。但是为了学好java,不仅仅要知道有这么一种方法,更重要的是要知道怎么实现这种方法。

    首先需要弄明白十进制转化为二进制的数学方法,就是把十进制的原始数连续除以二取余数,然后得到的余数从下到上组合起来就是该数的二进制表示。其实这也不难理解。首先,最后一个余数肯定是这个数能除掉的最大的二的次幂,那么这个“1”的位数确定了,然后再往后随着2的次幂的减少,数位的值从左至右也就确定了。

    这样就可以实现十进制到二进制之间的转换了。

    private String toBinaryString(int i){

    String result="";

    while(i>1){

    int j=i%2;

    i=i/2;

    result=j+result;

    }

    result=i+result;//最后的商也要算进来

    return result;

    }

    展开全文
  • 十进制转二进制

    2020-04-25 10:16:40
    十进制转二进制,这是两者之间的互相转换,所以没有定义,原因就是两者互相转化。 怎么做?(步骤) 理解基本机制转换思想---及时短除法。如将数字125不断的除以2,保留余数,直到商为0。然后从下到上读数,就是...

    十进制转二进制,这是两者之间的互相转换,所以没有定义,原因就是两者互相转化。

    怎么做?(步骤)

    1. 理解基本机制转换思想---及时短除法。如将数字125不断的除以2,保留余数,直到商为0。然后从下到上读数,就是对应的二进制字符串
    2. 二进制都是需要使用字符串进行保存的,但是可以先直接输入数字然后将之转换成字符串

    具体的操作方式

    1. 定义整数,然后%2就是我们需要的余数,然后数字/2 得到对应的商。因为这一步骤是不断重复,而且是直到终止条件(商为0停止),所以使用while循环。
    2. 整数输出的方式: 可以使用vector或者数组保存对应的所有整数,然后倒叙输出
    3. 如果采用字符串的形式: 可以使用空字符串+将整数转换成字符,然后倒叙输出
    4.  整数转字符。 第一种 整数+‘0’,第二种 to_string(数字)。
    展开全文
  • 进制转换的问题,考试要考这种题怎么破...以下节选自本书正文:1.2.2.1 十进制数转换为二进制数在讲进制转换之前,先来一个小游戏。现有一架天平,和4种重量的砝码,分别重8克、4克、2克、1克(每种砝码只有一个)。...

    40218e0a-4213-eb11-8da9-e4434bdf6706.gif

    进制转换的问题,考试要考

    这种题怎么破,还用除法?

    你不觉得这种方法非常不好算么

    43218e0a-4213-eb11-8da9-e4434bdf6706.png

    咱玩转的同学,从来不用这种方法

    因为,我们有捷径——

    十进制转换为二进制

    捷径在哪里?就是《玩转Office轻松过二级》第3版,书中介绍的方法!

    以下节选自本书正文:

    1.2.2.1 十进制数转换为二进制数

    在讲进制转换之前,先来做一个小游戏。现有一架天平,和4种重量的砝码,分别重8克、4克、2克、1克(每种砝码只有一个)。现要用此天平称重13克的物体,物体放在左盘上,如图1-3所示。请问在右盘上应怎样选放4种砝码,才能使左右两盘同样重天平平衡呢?

    45218e0a-4213-eb11-8da9-e4434bdf6706.png

    图1-3 用天平称量重物

    显然在右盘上应选放8克、4克、1克这3种砝码,使右盘总重量也为13。将选放的砝码用1表示,未选放的砝码用0表示(只有2克的砝码未选),按8、4、2、1的顺序依次写出就是:1101,则1101就是十进制数13的二进制形式。无形中已经完成十进制数13到二进制的转换。

    这种转换方法归纳起来就是:用8、4、2、1四个数去"凑"一个十进制数,选用的数用1表示,未选用的数用0表示,按8、4、2、1由高到低的顺序依次写出1、0序列就是对应的二进制数了。

    又如,十进制数8转换为二进制可直接写出为:1000。因为重物重8克,恰好有一个8克的砝码,只选放这一个8克的砝码就可以了。仅8的对应位写1,其他3位都写0。

    这四个砝码的重量8、4、2、1是通过由1开始,向左依次×2得到的,这些数实际是二进制权值。当然还可以再继续向左×2得到更大的权值16、32、64、128……。当要转换的十进制数在16以上时,就要用更大的权值来"凑"这个十进制数,转换方法不变。这种通过用权值"凑"十进制数来转换二进制的方法属于降幂法,这是一种比"除2取余"更简便的方法

    来,做一道题库里的考试题,试试——

    【真题链接1-15】十进制数18转换成二进制数是(  )。

    A)010101    B)101000

    C)010010     D)001010

    【答案】C

    【解析】用16、8、4、2、1来凑18,显然用16和2即可。则16和2对应位写1,其余对应位写0,按16、8、4、2、1的顺序依次写出各位为10010。而在数字前加0大小不变,当然也可写为010010。

    更大一点的数呢

    对于较大的十进制数不易直接看出权值的"凑"法,这时可由大到小依次考虑各位权值:如果某位权值≤目前"剩余"的数值,就选用它;否则不选用。例如,十进制数117转换为二进制数为:1110101B。写出权值为"64、32、16、8、4、2、1",权值的"凑法"是:

    (1)首先考虑权值64是否选用,由于64<117,应该选用。这时要凑的数值还剩117-64=53;

    (2)然后考虑权值32,由于32<53(注意要与"剩余"的数值来比,不要再与117比),也应选用。又选用了32后,目前要凑的数值还剩53-32=21;

    (3)再考虑权值16,由于16<21,也应选用16,目前要凑的数值还剩21-16=5;

    (4)再考虑权值8,由于8>5,因此不选用8,目前要凑的数值仍还剩5;

    (5)再考虑权值4,由于4<5,选用4,目前要凑的数值还剩1;

    (6)再考虑权值2,由于2>1,因此不选用2,目前要凑的数值仍还剩1;

    (7)再考虑权值1,1=1,选用此权值1,恰好凑完。

    在实际换算时,可画出如图1-4所示的过程:先依次写出各位权值(第二行),然后在第一行最左边写出117,从左到右递推。根据每位权值是否选用,在对应位的权值下(第三行)依次写1或0。

    48218e0a-4213-eb11-8da9-e4434bdf6706.png

    图1-4 用降幂法将十进制数117转换为二进制数的递推过程(灰色线条表示减法计算的减号和等号,例如117-64=53)

    来,再做一道题库里的考试题,试试——

    【真题链接1-16】十进制数60转换成无符号二进制整数是(  )。

    A.0111100    B.0111010

    C.0111000    D.0110110

    【答案】A

    【解析】32、16、8、4这四个权值刚好凑出60(32+8=40,16+4=20;40+20=60),这四个权值对应位写1。只剩2、1两个权值对应位写0,依次写出各位就是111100。而在数字前加0,大小不变。题目中的"无符号"含义是非负数。在二进制的补码表示中,首位为1表示负数,为0表示非负,因此答案在数字前加一个0强调非负,更为严谨。

    二进制转换为十进制

    为十进制数转换为二进制数的逆过程:

    已知了二进制数即已知了各位权值的"凑法",所使用的权值之和即为对应的十进制数。例如,二进制数1101B转换为十进制数是13,其转换方法是:

    把二进制数1101按从左至右的顺序依次读作8、4、2、1,将二进制数为1的位对应所读数字相加就可以了,如图1-5所示。

    4a218e0a-4213-eb11-8da9-e4434bdf6706.png

    图1-5 二进制数1101转换为十进制数的读数递推过程

    又如:二进制数1010B转换为十进制数是10,二进制数101B转换为十进制数是5。

    又到了练几道题的时候了——

    【真题链接1-17】如删除一个非零无符号二进制偶整数后的2个0,则此数的值为原数的(  )。

    A.4倍    B.2倍  

    C.1/2    D.1/4

    【答案】D

    例如:0100,十进制是几?4。删除后2个0变为:01,十进制是几?1。是原数的多少?

    【真题链接1-18】用8位二进制数能表示的最大的无符号整数等于十进制整数(  )。

    A.255    B.256

    C.128    D.127
    【答案】A
    【解析】答案是1111 1111(8个1),但在分析的时候,并不分析1111 1111,而分析1 0000 0000 更为简便。后者是在1111 1111基础上+1得到的,而后者的十进制形式是256(最右边一位"砝码重"1,向左各位依次×2得到2、4、8、16……至最左边的1对应256。只有256对应位为1其他位均为0,只放了256这一个砝码,十进制数当然是256)。1111 1111的数比它小1,当然是255了。

    以上几道题会了,题库里所有这一类的选择题,全会了!

    用得着1300道选择题,都做一遍吗?

    还找什么手机,手机刷题软件?要在手机上把1300道都做一遍,你不觉得累?

    PS:八进制/十六进制转换,二级office要求不多。如需系统学习,还可参考《C语言其实很简单》:又被抢光了!《C语言其实很简单》第7次加印:告别枯燥轻松学习,颠覆传统教学模式

    总结很多时候,学习困难,是因为你没看《玩转Office轻松过二级》第3版。看视频有什么用?本来2分钟能解决的,非要去看几十分钟的视频,看完还是一头雾水……

    为什么有捷径,有同学就是不愿意用呢

    书有电子版吗

    电子版,我们还没有找到。如果你找到了,记得告诉我们4c218e0a-4213-eb11-8da9-e4434bdf6706.png

    如何购买?

    《玩转Office轻松过二级》第3版全国新华书店和各大网店有售。读者在网上搜索本书书名(玩转Office轻松过二级),找合适的卖家即可(我们是作者,作者不直销噢)。

    50218e0a-4213-eb11-8da9-e4434bdf6706.png

    展开全文
  • % 8 是指变成8位的二进制数,例如 a = 3 ,则 bin 就是 0000_0011 当数字a小于0的时候,这样操作: bin = dec2bin( a + 2^8 , 8 ); % 8 还是8位的意思,比如 a = -3 ,则 bin 就是 1111_1101 操作一个一维数组...
  • 进制转换的问题,考试要考这种题怎么破...以下节选自本书正文:1.2.2.1 十进制数转换为二进制数在讲进制转换之前,先来一个小游戏。现有一架天平,和4种重量的砝码,分别重8克、4克、2克、1克(每种砝码只有一个)。...
  • 十进制转二进制分为整数转二进制,和小数转二进制 整数转二进制 采用"除2取余,逆序排列"法: 1.首先用2整除一个十进制整数,得到一个商和余数 2.然后再用2去除得到的商,又会得到一个商和余数 3.重复操作,一直到...
  • 十六进制格式的带符号二进制转十进制计算方法`~` 操作符转换演示正确转换方式 这个问题必须记录一下,我以为转换就是直接按位取反,但是结果总是不对,经过分析后才发现数据分析就有问题,那当然接下来怎么做都不会...
  • 二进制转十进制 (0.001)2 ->...十进制转二进制 0.125 -> 二进制 小数点后的数为0.125,使用0.125开始乘法,每一次取整数位的数字,直到全部小数位消失。 0.125  × 2 =  0.25 &n
  • 十进制转二进制的步骤是将十进制数除以二然直到商为0,然后反向读取余数。请问要怎么获取余数呢? ’如何让程序自动判断输入数字的正负 以确定变为反码时是否需要将零变为1,将一变为零? ’如何进行二进制...
  • 今天题碰上一道其中需要十进制二进制之间的转换的问题。然后翻阅资料得知,在java中的integer类中就有一个方法可以实现这个操作,这个方法的名字是toBinaryString(),返回值类型是字符串。但是为了学好java,不...
  • 十进制转换为级制

    2011-09-21 21:45:00
    比如将 235转换为二进制怎么做呢? 首先将 235/2=127 余1那么我们的 二进制现在得到一个1 127/2=63 余1那么我们的二进制又得到一个1 63/2= 31 余1那么我们的二进制又得到一个1 31/2=15...
  • 利用之前1000位以内的二进制转十进制的题,进行了修改。希望有所帮助。 不敢说多大的数字都可以AC,但基本上只要string可以容纳,就都可以。也是挺通用的模板。 不过,不要想着很快就可以看懂我的代码。怎么说,我...
  • 十进制转二进制分为整数转二进制,和小数转二进制 整数转二进制 采用"除2取余,逆序排列"法: 1.首先用2整除一个十进制整数,得到一个商和余数 2.然后再用2去除得到的商,又会得到一个商和余数 3.重复操作,一直到...
  • 带小数点的二进制转十进制 例如:00010100.1转换为十进制? 带小数的转换则是整数部分很小数部分分开计算。 对于00010100整数部分按照上一篇博文可以得到转换为十进制是20。接下来我们计算小数部分。 小数部分二进制...
  • VC 二进制转换(格雷码)程序源代码,研究格雷码与自然码之间的转换,貌似要用到传感器,具体细节不...在示例中,32 unsigned int按钮示范了对于unsigned int型十进制转换成二进制的操;其他相关按钮可作内似的修改。
  • 4.数字1-10用二进制怎么表达?(小练习)5.十进制怎么变成二进制方法讲解!!4.二进制变成十进制(下期再写吧,这期内容有点多,有不懂的,评论可以问) 一、二进制是什么? 储存数据的一种表示形式:电脑底层会把...
  • 【笔记】进制转换

    2016-09-29 08:29:24
    进制转换 其实就是能满足到下一位的数值不同 比如十进制中 10 + 10 = 20 满10进1 二进制中 10 + 10 = 100 满2进1 以此类推怎么转换回来呢 ...╮(╯_╰)╭代码 codevs2563 二进制转十进制#inclu
  • 项目中遇到的,就随手记录一下Hex到Bin的转换: 问题描述: . Java中的Int默认保存为十进制数字。...现在想要根据 二进制字符串 转换成 十六进制字符串 ,怎么做呢? 普通的转换是这样的(以2进制-16进...
  • 不管是计算机一级,还是计算机二级,选择题里都会涉及到“进制转换”...二进制、八进制、十进制、十六进制........讲真,进制转换就跟小学数学题一样简单,计算方法就是:加减乘除!就像下图这样:(字有点丑,请忽略...
  • 我必须一个转换器,将二进制数(以列表的形式,例如:[1,0,1,0,0,1])转换为十进制数。 我必须使用Python编写此程序。 该函数具有一个存储二进制值的列表作为参数,该列表名为l 怎么运行的 ? def convert ( l ...
  • 任意的进制转换

    千次阅读 2013-04-17 10:06:27
    2013-4-11号,周四,我去搜狗面试的的一道笔试题:把一个二进制的数转换成十六进制数,当时怎么也想不起来如何?想着这样:先转换成十进制,再转换成十六进制。所以涉及到了进制间转换的问题。   计算机中...
  • 知识点目录十进制整数转为二进制整数除二取余逆序输出 十进制整数转为二进制整数 我们都知道十进制整数转换为二进制整数,用的办法是除二取余,逆序输出。 除二取余 为什么要不断得除2?因为我们要求出每一个二进制...
  • 进制及其转换

    2015-08-30 20:26:31
    比如我们要存储一个数字,我们称它为number,用十进制表示为521(五百二十一),而用二进制表示为1000001001,如果此时需要你来设计一个东西,来存储这些数据,应该怎么做呢?对于十进制的数,521,因为每一位上可能...
  • 以前的一个同学去面试嵌入式软件工程师,然后遇到下面的题,一时半会居然不知道怎么做,发给我问我有没有思路,我看了一下 问题: int x=0;int a=18;int b=24;求下列x的值。 x=(a&b) x=(a&&b) x=(a...
  • 今天在研究生复试面试的过程中被问到小数的二进制和十六进制形式怎么表示,然而这个知识点已经记不得了,只能尴尬的和老师说这个知识点没有掌握好,回去会继续学习。不过最后的成绩还不错,复试第三,回去查了下小数...
  • 以四进制为例,四进制数32310,要转换成二进制数,应该怎么做? 在我的程序里面,我用的方法是这样的:首先,将要转换的数转换成十进制,再转换成目标进制。要将32310(4)转化成十进制,其实就是04的0次方+14的1...
  • 一日不学,如隔千秋啊!最近正逢开学,一直都没有看过书。今天想着几道进制转换的题。算完之后,本想用python检验一下的,没想到竟然忘掉怎么转换的了(话说平时也基本不怎么用到进制转换)。...#十进制转换进...

空空如也

空空如也

1 2 3 4 5
收藏数 90
精华内容 36
关键字:

十进制转二进制怎么做