本文的标题是《每天学一点Excel2010 (98)——12个进制转换函数(1)》来源于:由作者:陈泳西采编而成,主要讲述了【本期开始讲工程函数。工程函数是用于计算机、工学、物理等专业领域的函数,主要
【本期开始讲工程函数。工程函数是用于计算机、工学、物理等专业领域的函数,主要包括数据的比较、换算、计算。】
12个进制转换函数
助记:英文的“进制1+2(英文读音与to相同,例如P2P)+进制2”。
函数名称由代表源数据进制的3个字母,加上2,再加上代表转换后数据进制的3个字母构成。
- bin:binary二进制
- oct:octal八进制
- dec:decimal十进制
- hex:hexadecimal十六进制
例如bin2dec,hex2oct。
类别:工程
语法:
函数名称(number,[places])
参数:1~2个参数
- number 必需。被转换的源数据。
- places 可选。转换后结果要使用的字符数,如果省略将默认使用尽可能少的字符数,主要是用来增加前置的0,看起来整齐划一。对十进制来说,前置0无意义,所以~2dec函数只有1个参数number。如果参数不是整数,则截尾取整;不是数值,返回错误值#VALUE!;不是正数,返回错误值#NUM!。
用法:
将number参数中的源数据进行进制转换,按places参数补足前置0。
204 bin2oct
语法:bin2oct(number,[places])
注意:
1)number不能多于10位,最高位为符号位(0表示正,1表示负),其余9位为数字位,负数用二进制的补码表示。否则返回错误值#NUM!。
2)由于常规模式的数字不显示前置0,我们可以将单元格设置为文本格式,函数计算时自动将其转换为二进制数值。我们在A1单元格输入0111111111(单元格要设置成文本格式)。
3)在B1单元格输入公式“=bin2oct(A1)”,结果显示777,是左对齐的文本格式,这是正数的最大值,十进制是511,即8的3次方减去1。
填充公式和数据
4)选中A1:B1单元格区域,使用右下角的填充柄向下填充,然后按F9重新计算,由于后续单元格都不是二进制数,全部显示#NUM!错误。
5)将A2单元格改成“1111111111”,按F9重新计算,显示“7777777777”,这是负数的最大值,即十进制的-1。如果数字为负数,bin2oct函数忽略places参数,返回10个字符表示的8进制数。
6)关于原码、反码、补码的知识可以自行上网搜索。计算机里面负数使用补码的好处是可以和符号位一起进行统一的运算,比较方便。
7)8是2的3次方,人工转换时每3位2进制可以转换成1位8进制,正数的10位2进制数0000000000~0111111111可以转化为3位8进制数000~777,对于负数,二进制的1111111111~1000000000,即十进制的-1~-512转换成7777777777~7777777000。在A3单元格输入111,按F9,B3显示7。点击B3单元格,按F2进入编辑状态,增加第2个参数为3,著名的间谍代号出现了。我们将参数改为10,显示“0000000007”,改成11就出错了,看来八进制也不能超过10位。
增加第2个参数
8)负数的最小值是多少呢?A4单元格改成“1000000000”,按F9重新计算,显示“7777777000”,即十进制的-512,即8的3次方。
9)观察A1、A4和B1、B4是不是表示数值的代码刚好相反?
(待续)
本文原作者为陈泳西,转载请注明:出处!如该文有不妥之处,请联系站长删除,谢谢合作~
原创文章,作者:陈泳西,如若转载,请注明出处:http://www.kaicen.cn/20220514322180.html