二进制,八进制,十六进制各最大数是多少
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二进制,八进制,十六进制各最大数是多少相关的知识,希望对你有一定的参考价值。
二进制只有0、1两个数字,最大数是1;八进制有0~7八个数字,最大数是7;
十六进制有0~9、a(10)、b(11)、c(12)、d(13)、e(14)、f(15)共16个数字,最大数是f,即十进制数15。
如果你说的不是这个意思,那最大数与进制无关而与计算机中表示一个数所用的二进制位数有关,就像用3位十进制数最大只能表示999一样的道理。现在计算机中一个整数常用4字节32位表示,当采用无符号数制时,最大数二进制表示为11111111
11111111
11111111
11111111。八进制也好,十六进制也罢,最大数都是这个,它是十进制的4294967295。 参考技术A 任何进位制都没有最大数。或者说最大数是无穷大,用符号∞来表示。
每一位上的最大数,二进制是1;八进制是7;十六进制是15,用字母F来表示。本回答被提问者采纳
EXCEL2007中最多可以转10位二进制的数,我想把40位的二进制转成十进制的数,有啥办法?
以下代码试验通过可行:❤我自己对VB这门语言也是一知半解,代码写得很蹩脚。
返回值只能设定为Double了,设定为Long的话您的40位二进制会溢出的。
Double可允许的最大数值范围要大很多。Double最大有效数值位数为16位。也就是说最大能准确无误地显示的整数为:999999999……(16个9)。比这个数更大的整数赋值给Double就只能显示为不精确的小数或者用科学计数法表示了。而这个数转换为2进制后是49位。也就是说下面这段代码最多只能转换49位二进制数。比这个更长的数转换的结果就不精确。您可以用Win7系统自带的计算器的程序员模式进行验证。
Function MyBinToDec(ByVal value As String) As Double
On Error GoTo Catch
Try:
Dim result As Double
Dim length As Integer
length = Len(value)
For Index = 1 To length
result = result + CByte(Mid(value, Index, 1)) * Application.WorksheetFunction.Power(2, length - Index)
Next
MyBinToDec = result
Exit Function
Catch:
MsgBox "由于以下原因转换没有成功!" & vbNewLine & Err.Description
End Function
❤希望对您有所帮助。追问
谢谢!可我要在EXCEL2007中完成,不能用VB
追答❤以上的代码就是我在Excel2007中用VBA写的。
您只需要按Alt+F11组合键就会切换到VBA代码编写界面。
再点击插入菜单中的模块子菜单,插入模块。并把我上面的代码贴进去。
这时候您再按Alt+F11切回Excel的表格界面。此时就可以使用刚刚在模块中自定义的函数MyBinToDec了。跟您在Excel中使用系统中自带的BinToDec函数方法一样。
你按照我说的做法再实验一遍吧。
非常谢谢,真的。厉害
参考技术A =BIN2DEC(MID(A1,1,9))*512^3+BIN2DEC(MID(A1,10,9))*512^2+BIN2DEC(MID(A1,19,9))*512+BIN2DEC(MID(A1,28,9))不过只能显示36位二进制数转十进制数;36位二进制放于A1格内,B1格输入此公式;连等号一起复制;以下是68719476735以下十进制转二进制数,且显示36位二进制数EXCEL2007公式;
=TEXT(DEC2BIN(MOD(INT(A1/512/512/512),512)),"000000000")&TEXT(DEC2BIN(MOD(INT(A1/512/512),512)),"000000000")&TEXT(DEC2BIN(MOD(INT(A1/512),512)),"000000000")&TEXT(DEC2BIN(MOD(A1,512)),"000000000")
这是68719476735以下的十进制数转36位二进制数公式;十进制数放于A1格内,B1格内输入此公式;也连等号一起复制;68719476735以上的十进制数不能用此公式;
以下是两个36位二进制数异或公式:(两个二进制数分别放于A1和B1格,C1格输入此公式)
=SUBSTITUTE(TEXT(MID(A1,1,15)+MID(B1,1,15),"000000000000000"),2,0)&SUBSTITUTE(TEXT(MID(A1,16,15)+MID(B1,16,15),"000000000000000"),2,0)&SUBSTITUTE(TEXT(MID(A1,31,6)+MID(B1,31,6),"000000"),2,0)
以上是关于二进制,八进制,十六进制各最大数是多少的主要内容,如果未能解决你的问题,请参考以下文章
EXCEL2007中最多可以转10位二进制的数,我想把40位的二进制转成十进制的数,有啥办法?