十进制数45D的二进制形式打开文件表示形式为

当前位置:
>>>二进制数101101用十进制可以表示为()A.40B.80C.45D.44-数学-魔方..
二进制数101101用十进制可以表示为(  )A.40B.80C.45D.44
题型:单选题难度:中档来源:不详
二进制数101101用十进制可以表示为:1×25+0×24+1×23+1×22+0×21+1=45.故选C.
马上分享给同学
据魔方格专家权威分析,试题“二进制数101101用十进制可以表示为()A.40B.80C.45D.44-数学-魔方..”主要考查你对&&算法的概念&&等考点的理解。关于这些考点的“档案”如下:
现在没空?点击收藏,以后再看。
因为篇幅有限,只列出部分考点,详细请访问。
算法的概念
算法的定义:
算法通常是指用计算机按照一定规则解决一类问题的明确和有限的步骤。 算法的特征:
①确定性;②逻辑性;③有穷性;④正确性;⑤顺序性;⑥普遍性。 算法的描述:
自然语言、程序框图、程序语言。
设计一个问题的算法时应注意:
(1)认真分析问题,联系解决此问题的一般数学方法;(2)综合考虑此类问题中可能涉及的各种情况;(3)&将解决问题的过程划分为若干个步骤;(4)用简练的语言将各个步骤表示出来。
发现相似题
与“二进制数101101用十进制可以表示为()A.40B.80C.45D.44-数学-魔方..”考查相似的试题有:
824778807282868702753539280259815530当前位置: >
设任意一个十进制整数为D,转换成二进制数为B。根据数制的概念,下列叙述中正确的是()。
A.数字B的位数&数字D的位数
B.数字B的位数&数字D的位数
C.数字B的位数&数字D的位数
D.数字B的位数&数字D的位数
所属学科:
试题类型:客观题
所属知识点:
试题分数:1.0 分
暂无学习笔记。
&&&&&&&&&&&&&&&希赛网 版权所有 & &&欢迎加入我们,一同切磋技术。 &
用户名: &&&
密 码: &
共有 10590 人关注过本帖
标题:求教,将一个64位的二进制数如何转换为一个十进制的数
等 级:论坛游侠
帖 子:78
专家分:170
结帖率:90.48%
&&已结贴√
&&问题点数:50&&回复次数:10&&&
求教,将一个64位的二进制数如何转换为一个十进制的数
最大的十进制数快二十位了,该怎样处理呀?
搜索更多相关主题的帖子:
等 级:贵宾
威 望:103
帖 子:3280
专家分:12654
其实我一直很纳闷这个问题。数就是数,要说转换只是在显示形式上转换而已。与运算无关。
64位,用long long型接收就好了格式串是&%lld&或&%I64d&。
如果输入的就是一串01,那可以用字符串接收,之后移位拼一个long long数出来。
重剑无锋,大巧不工
等 级:蝙蝠侠
帖 子:492
专家分:777
转换成十六进制的怎么样?楼主应该是觉得输出的位数太多了吧
来 自:山西朔州
等 级:职业侠客
帖 子:94
专家分:342
你是需要用代码了还是直接想了解这个转化过程啊,对于这个转化过程,我觉得先变成16进制的,在变为十进制的可能会简单点
等 级:论坛游侠
帖 子:78
专家分:170
回复 2楼 beyondyf
额,不太明白。
等 级:论坛游侠
帖 子:78
专家分:170
回复 3楼 小赵q1
十六进制确实可以,不过如楼上版主所说long long 是可以的,关键是初次接触数多的,有点蒙。
等 级:论坛游侠
帖 子:78
专家分:170
回复 4楼 星112
方法能说的详细一点吗?
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
程序代码:#include &stdio.h&
#include &string.h&
typedef unsigned long long
static ull map[<font color=#] = {
&&& <font color=#, 2llu, 4llu, 8llu, 16llu, 32llu, 64llu, 128llu, 256llu, 512llu, 1024llu, 2048llu, 4096llu,
&&& 8192llu, 16384llu, 32768llu, 65536llu, 131072llu, 262144llu, 524288llu, 1048576llu,
&&& 2097152llu, 4194304llu, 8388608llu, llu, llu, llu,
&&& llu, llu, llu, llu, llu,
&&& llu, llu, llu, llu, llu,
&&& llu, llu, llu, 6llu,
&&& 2llu, 4llu, 8llu, 16llu,
&&& 32llu, 64llu, 328llu, 656llu,
&&&&&312llu, 2624llu, 5248llu,
&&& 0496llu, 0992llu, 81984llu,
&&& 63968llu, 27936llu, 855872llu,
&&& 711744llu, 423488llu, 6846976llu,
&&& 3693952llu, 7387904llu, 4775808llu
int main(void)
&&& ull decimal = <font color=#;
&&& int i,
&&& char binary[<font color=#];
&&& j = strlen(gets(binary));
&&& for (i = <font color=#; j--; ++i)
&&&&&&&&decimal += (binary[j] - '<font color=#') ? map[i] : <font color=#;
&&& printf(&%llu\n&, decimal);
&&& return <font color=#;
My life is brilliant
等 级:蝙蝠侠
帖 子:492
专家分:777
&&得分:15&
回复 7楼 星火gavin
关于二进制数、十六进制数和十进制数的相互转换方法如下,这是我做的笔记中的一部分,通俗易懂,你可以看看。
一、各进制的转换
1、二进制和十六进制数
一个字节等于8个二进制位
在计算机里面,通常用一个数字后面跟一个英文字母来表示这个数的数字。
十进制用字母D、二进制用字母B、八进制用字母O和十六进制用字母H来表示。
如:B、115D、0075H等,后面的字母表示这个数字是多少进制的。
2、十六进制数及其与二进制、十进制数之间的转换
(1)十进制数转换为二进制数和十六进制数的方法:
用除以2取余法和除以16取余法:
例如:N=45D转换为二进制数:
整除式子&&&&&& 余数
45/2=22&&&&&&&&a0=1&&↑
22/2=11&&&&&&&&a1=0&&︱&&输
11/2=5&&&&&&&&&a2=1&&︱&&出
5/2=2&&&&&&&&& a3=1&&︱&&方
2/2=1&&&&&&&&& a4=0&&︱&&向
1/2=0&&&&&&&&& a5=1&&︱
因为算结果的时候是从下向上算的,所以:N=45D=101101B。
例如:N=117D转换为十六进制数:
整除式子&&&&&& 余数
117/16=7&&&&&& a0=5&&↑
7/16=0&&&&&&&&&a1=7&&︱
计算结果仍然是从下向上:所以:N=117D=75H。
注意:1/2=0余1,可以看成是2*0+1=1,7/16=0同理。
(2)二进制数或十六进制数转换为十进制数的方法:
各位二进制数码乘以与其对应的权之和
或各位十六进制数码乘以与其对应的权之和
也就是权的展开式。
例如:将二进制数B转换为十进制数:
1&&& 0&&& 1&&& 1&&& 1&&& 0&&& 0&&& 1&&& 0&&& 1
先判断这个二进制码有多少位再减一,这里是10位减一后是9。
然后用各位二进制数码乘以与其对应的权之和:
第十位的二进制数码是1,与其对应的权是2的10-1次方1*2^9,
第九位的二进制数码是0,与其对应的权是2的9-1次方0*2^8,
以此类推,因为是二进制数,所以对应的权就是2的这个二进制码对应的位数减一次方。
&&1&&&&&& 0&&&&&& 1&&&&&& 1&&&&&& 1&&&&&& 0&&&&&& 0&&&&&& 1&&&&&& 0&&&&&& 1
1*2^9 + 0*2^8 + 1*2^7 + 1*2^6 + 1*2^5 + 0*2^4 + 0*2^3 + 1*2^2 + 0*2^1 + 1*2^0 权的展开式
=1*512 +&&0&&&+ 1*128 + 1*64 + 1*32&&+&&0&&+&&&0&&&+ 1*4&&+&&0&&&+ 1*1 = 741D
以上方法得出二进制数B的十进制数为741D。
十六进制转换为十进制的方法:
方法同二进制转换为十进制相似,只不过权变成了16的这个十六进制码对应的位数减一次方。
例如:将3A4H转换为十进制:
&&& 3&&&&&&&&A&&&&&&&&4
=3*16^2 + A*16^1 + 4*16^0&&& 权的展开式
A在十六进制中表示的是10,所以上式应该变为:
=3*16^2 + 10*16^1 + 4*16^0
=3*256&&+ 10*16&&+ 4*1
=768&&& +&&160&&+4&&= 932D
注意:任何数的0次方都等于1;
(3)十六进制数和二进制数之间的相互转换:
一个二进制数,把它的低位到高位每4位组成一组,直接用十六进制数来表示
例如:把二进制数转换为十六进制数;
10&&&1110&&& 0101
最前面不够4位的用0补齐,上式变为
0010&&& 1110&&& 0101
然后用8421法,因为2的三次方是8,所以第四位的二进制码乘以8,因为2的二次方是2,所以第三位就是二进制码乘以4,因为2的一次方是2,所以第二位就是二进制码乘以2,因为2的零次方为1,所以第一位就是二进制码乘以1。
上式的值就是:
0010&&& 1110&&& 0101
&2&&&&&&8+4+2&&&4+1
&2&&&&&& 14&&&&&5
14在十六进制中用E表示,所以B = 2E5H。
将十六进制数转换为二进制数,只需将十六进制数的每一位用4位二进制数表示就形成了相应的二进制数。
例如:把十六进制数A19C转换成相应的二进制数
&A&&&&&&1&&&&&9&&&&&C
=10&&&&&1&&&&&9&&& 12
=8+2&&& 1&&& 8+1&&&8+4
所以:A19CH=1100B。
[ 本帖最后由 小赵q1 于
21:43 编辑 ]
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
以下是引用beyondyf在 23:00:42的发言:
其实我一直很纳闷这个问题。数就是数,要说转换只是在显示形式上转换而已。与运算无关。
64位,用long long型接收就好了格式串是&%lld&或&%I64d&。
如果输入的就是一串01,那可以用字符串接收,之后移位拼一个long long数出来。版主说的对 数就是数 进制只不过是表示方法不同
就好像 你可以把2这个十进制数写在纸上 是个2 也可以伸两根手指头表示 自然也可以用2进制的10来表示
版权所有,并保留所有权利。
Powered by , Processed in 0.055840 second(s), 7 queries.
Copyright&, BCCN.NET, All Rights Reserved温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
3. 十进制数转换成十六进除16取余,16进制一般用0~9,A,B,C,D,E,F,所以,117D转换成十六进制为:75H,
<FONT color=#ff 十六进制 到 二进制 :每一位用4位二进制数来表示,最终形成对应的二进制数,如:
A19CH :A=10(十进制)=1010 ,1 = 0001 ,9 = 1001,C = 12(十进制)=1100,
&所以A19CH = 1100B
通常,机器数是把符号"数字化"的数,是数字在计算机中的二进制表示形式。
  数的符号数值化。实用的数据有正数和负数,由于计算机内部硬件只能表示两种物理状态(用0和1表示),因此实用数据的正号“+”或负号“-”,在机器里就用一位二进制的0或1来区别。通常这个符号放在二进制数的最高位,称符号位,以0代表符号“+”,以1代表符号“-”。因为有符号占据一位,数的形式值就不等于真正的数值,带符号位的机器数对应的数值称为机器数的真值。 例如二进制真值数-011011,它的机器 1011011。
二进制的位数受机器设备的限制。机器内部设备一次能表示的二进制位数叫机器的字长,一台机器的字长是固定的。字长8位叫一个字节(Byte),现在机器字长一般都是字节的整数倍,如字长8位、16位、32位、64位。
&&&&&& 机器数可以用不同的码制来表示,常用的有原码,补码,和反码表示法。
&& 将数的真值形式中“+”号用“0”表示,“-”号用“1”表示时,叫做数的原码形式,简称原码。若字长为n位,原码一般可表示为:
  (1)当X为正数时[X]原和X一样,即[X]原 = X。当X为负数时 。由于X本身为负数,所以,实际上是将∣X∣数值部分绝对值前面的符号位上写成“1”即可。
原码表示法比较直观,它的数值部分就是该数的绝对值,而且与真值、十进制数的转换十分方便。但是它的加减法运算较复杂。当两数相加时,机器要首先判断两数的符号是否相同,如果相同则两数相加,若符号不同,则两数相减。在做减法前,还要判断两数绝对值的大小,然后用大数减去小数,最后再确定差的符号,换言之,用这样一种直接的形式进行加运算时,负数的符号位不能与其数值部分一道参加运算,而必须利用单独的线路确定和的符号位。要实现这些操作,电路就很复杂,这显然是不经济实用的。为了减少设备,解决机器内负数的符号位参加运算的问题,总是将减法运算变成加法运算,也就引进了反码和补码这两种机器数。
  如前所述,为了克服原码运算的缺点,采用机器数的反码和补码表示法。若字长为n位,反码可表示为:
  (2)即对正数来说,其反码和原码的形式相同;对负数来说,反码为其原码的数值部分各位变反。
  补码是根据同余的概念引入的,我们来看一个减法通过加法来实现的例子。假定现在是北京时间6点整,有一只手表却是8点整,比北京时间快了2小时,校准的方法有两种,一种是倒拨2小时,一种是正拨10小时。若规定倒拨是做减法,正拨是做加法,那么对手表来讲减2与加10是等价的,也就是说减2可以用加10来实现。这是因为8加10等于18,然而手表最大只能指示12,当大于12时12自然丢失,18减去12就只剩6了。这说明减法在一定条件下,是可以用加法来代替的。这里“12”称为“模”,10称为“-2”对模12的补数。推广到一般则有:
  A – B = A + ( – B + M ) = A + ( – B )补
总之,正数的原码、反码和补码是完全相同的;负数的原码、反码和补码其形式各不相同。另外,特别要注意的是,对于负数的反码和补码(即符号位为1的数),其符号位后边的几位数表示的并不是此数的数值。如果要想知道此数的大小,一定要求其反码或补码才行。
多数机器里面都是采用补码表示,正数采用符号+绝对值表示,如:假设机器字长为8位,则[+1]补 = ,[+127]补=,[+0]补=,当用补码表示法表示负数时,负数X用2的n次方-[X]来表示,其中n为机器的字长。如:[-1]补 = 28-1 = ,[-127]补 =& 28-127=256-127=129=的补码就只有一种表示法:八个0,.
对于这个数,在补码表示法中被定义为-128,采用补码形式表示的有符号数,那么n位二进制数据能够表示的有符号整数的范围是:-2(n-1)~2(n-1)-1&&&& 是n-1次方(我现在能够理解补码了,也能理解这个范围了,我以前好像陷入了一个这种误解,老是以为这个范围,是这样得出的,比如,负数,最高位是1,对于机器字长8位来说,剩余的七位全是1,即1111111,加起来,就是八个,然后,最小的就是8个0,,然后把这个数转换成相应的十进制,就是范围,其实,我理解错了,为什么呢,这里的所谓的是补码,而我把补码的表示当成了原码的表示来转换成十进制,这就是错误的根源,说明我以前是没理解补码和原码的区别)
那么,8位表示的有符号数的范围是:-128~127,如果n =16,那么能够表示的有符号数整数的范围是-(记住这个范围)
例如,假设机器字长是16位,写出-117D的补码表示:
-117D = 216-117D 我把每个数都转化成2进制,也就是1 00 0000 – 11 0101 = 00 1011 这个数转换成六进制就是 FF8BH。
我采用书上的解法就是:
&& 首先:+117D可表示为: 11 0101
&& 按位求反后为&&&&&&&&&& 00 1010
&& 某位加1 后:&&&&&&&&&& 00 1011
&& 表示成十六进制:&&&&&&& F&&& F&& 8&& B(最终结果)
如果,对于无符号数来说,8位无符号数的表示范围:0&=n&=2的n次方-1,即:0~255
16位无符号数的表示范围:0&=n&=2n的n次方-1,即:0~65535(也要记住)
符号扩展,常需要把一个n位二进制数扩展为m位二进制数,(m&n),当要扩充的数十无符号数时,只要在最高位前扩展m-n个0,例如,21的8位二进制和16位二进制的补码表示如下:位,& 0101 16位
如果要扩展的数是有符号数,并且采用补码形式表示,进行符号扩展,如:-3的8位二进制补码和16位二进制补码如下:-3& 位补码,11 1101 16位补码,
补码的加法和减法
把一个二进制按位求反,末位加1的运输称为求补运算。求补运算有个特性,[X]补---》求补[-x]补 --à求补[X]补,就是,比如,3的补码表示是:,这个数求补:,对-3再求补,就变成了,则又变成了整数3,
例如:用8位二进制计算,25+(-32)
我们用求补码的方式来解决这个问题,25是整数,他的补码为:,
(-32)的补码是:先求32的补码:,对它求反:,末尾加1,得:,然后把它与25的补码相加得,这个数最高位为1,肯定是个负数,我们对这个数求反再末尾加1,得,刚好为7,根据补码的那个求补特性,[X]补---》求补[-x]补 --à求补[X]补,所以就是-7,跟我们用十进制算出来的结果一样。
阅读(16808)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'二进制数 十六进制数 补码',
blogAbstract:'& 今天弄懂了二进制和十六进制之间的转换,特别是我终于弄懂了补码,解决了我以前学习时碰到的很多疑惑。爽! \r\n1. 在计算机里,通常用数字后面紧跟一个英文字母来表示该数的数字,\r\n十进制一般用D,二进制用B,八进制用O,十六进用H来表示,\r\n2. 首先,十进制数转换成二进制,除2取余,按箭头方向写,自上而下写出来,所以45D转换成二进制为:101101B\r\n\r\n',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:1,
publishTime:1,
permalink:'blog/static/',
commentCount:3,
mainCommentCount:3,
recommendCount:1,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}

我要回帖

更多关于 二进制表现形式 的文章

 

随机推荐