如何在excel转换成十进制(每天学一点Excel2010103)

16)接上期,看看有啥变化?

  • 基数可以填写。
  • 逐位提取也可用。
  • 提出的字符要使用lookup之类的函数将字符转换成数字,比如A=10,F=15。

不知道自己动手试试16进制的没有?自行摸索学东西才印象深。

如何在excel转换成十进制(每天学一点Excel2010103)(1)

17)把基数改为16,E2、E3的函数改成hex2dec,前半部分只对不用A~F的16进制起作用。

如何在excel转换成十进制(每天学一点Excel2010103)(2)

16进制转十进制

18)后半部分对A~F的16进制也起作用,按照思路补全前半部分看看结果相同吗?

如何在excel转换成十进制(每天学一点Excel2010103)(3)

16进制转10进制

19)还是先把我的公式写上吧!

如何在excel转换成十进制(每天学一点Excel2010103)(4)

加上容错

20)再加上容错!这是不想增加中间的辅助单元格的做法,所以公式老长,是我目前写的最长的公式。推荐多利用辅助单元格,可以将一个复杂的计算分解,便于分步编写和差错。

21)60进制可以采用0~9,25个大写字母,25个小写字母编一个。工作量更大了,但用于加密效果应该不错。为了防止自己被密住,下面看一下十进制怎么变成其他进制,有了十进制做桥梁,所有进制之间就都可以相互转化了。

如何在excel转换成十进制(每天学一点Excel2010103)(5)

辗转相除

22)新建一个工作表,A1单元格作为输入的十进制数,B2单元格输入基数。我们利用除基数取余法进行进制转换。在A2单元格输入“=int(A1/$B$1)”,向下填充。

如何在excel转换成十进制(每天学一点Excel2010103)(6)

辗转取余

23)在B2单元格输入公式“=mod(A1,$B$1)”,向下填充。

如何在excel转换成十进制(每天学一点Excel2010103)(7)

10进制转2进制

24)在C1单元格输入concatenate函数,将文本依次串接起来,标准的16位2进制。

如何在excel转换成十进制(每天学一点Excel2010103)(8)

随便输入数值

25)随便输个数值,比如10922,用前面做的二进制到十进制转换器验证一下结果。

如何在excel转换成十进制(每天学一点Excel2010103)(9)

26)把B1的基数改成8,用oct2dec函数验证一下,不过得删掉几个前导0。

如何在excel转换成十进制(每天学一点Excel2010103)(10)

十进制转16进制

27)把B1的基数改成16,因为16进制中10=A,我们任选一个单元格输入“=hex2dec("2AAA")”,结果为10922,正确。

如何在excel转换成十进制(每天学一点Excel2010103)(11)

0~15转换成0~F

28)现在我们要反过来把十进制的0~15,变成十六进制的0~F,输入上图的公式,向下填充。现在16进制转换器完成了。

如何在excel转换成十进制(每天学一点Excel2010103)(12)

10~16进制转换

29)目前这个转换器对16进制以下的都有效,你可以验证一下。

30)再增加进制数,需要增加对应翻译的字符数即可。

如何在excel转换成十进制(每天学一点Excel2010103)(13)

利用现成公式

31)可不可以利用Excel自带函数呢?当然可以,16是2的4次方,我们一次提取一位16进制数就相当于4位二进制数。在C2单元格输入“=hexbin(B2,4)”,向下填充。然后把二进制数使用concatenate函数连接起来。我们可以把参数4放在一个单元格,把16用2^4表示。1位8进制相当于3位2进制,同样也可以加快转换速度。

如何在excel转换成十进制(每天学一点Excel2010103)(14)

利用现成函数加速并大幅度扩展位数。

32)同理对于十进制像十六进制的转换,我们也可以用这样的方法,最多一次可以进行9位,我们举个5位的例子,将B1单元格改为“=16^5”,B2单元格不查询了改成“=mod(A1,$B$1)”向下填充,C2单元格改成“=dec2hex(B2,5)”。大幅度扩展了可转换的位数。

如何在excel转换成十进制(每天学一点Excel2010103)(15)

33)因为自带函数不算符号位最多9位,我们把1~9的单元格有效性放在D1单元格,将B1单元格改为“=16^D1”,C2单元格改成“=dec2hex(B2,$D$2)”,更改D3的值看一下结果看看。唯一的缺点是D1的位置选的不好,输入参数9的话C列太宽了。

如何在excel转换成十进制(每天学一点Excel2010103)(16)

十进制转16进制

34)D1输入1,对于固定的十六进制数字可以不用lookup函数,直接使用。

如何在excel转换成十进制(每天学一点Excel2010103)(17)

choose函数

35)对于其他进制,对于数值直接使用choose函数转换更加简洁,在C2输入上图中公式。D1为1时,可以用于所有进制,只要在choose函数后面继续增加字符即可,自己来个60进制的吧,可以用来加密,把数字或字母混合体转换成一个别人不知道的进制,加以混淆。不信输入你的手机号或者出生日期看看变成什么啦!

36)正数转换基本就这样了。下面讲一下负数转换的思路,不再往下讲了,自己动手试试。

  • 符号位位置和位数固定,左边取第1位判断正负,8进制和16进制要将第1位变成2进制再取左边第1位。
  • 补码可以使用查询,顺序倒过来就行。

如何在excel转换成十进制(每天学一点Excel2010103)(18)

输入负数

37)不用动手试了,神奇的事情发生了,输入一个负数看看,依然成立,看来计算机内的各种计算就是用二进制计算的,齐活了。但我实在无法解释。例如-4除以16,结果为-1,余12,就是说-4要借上12除16等于-1。

(待续)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页