1. 首页
  2. > 银行开户 >

101010转换10进制数(10101110转换为十进制数为多少)


十进制与二进制

十进制是我们熟悉的逢十向高位进一位,如1 9=10。


二进制则是类似地逢二向更高位进一位,如1 1=10。


所谓“进制”,就是用多少个字符表示整数。十进制是用0~9这10个数字字符来表示整数,而二进制则是用0、1这2个数字字符来表示整数。


拿一个例子来说,(233)_{10}(表示十进制的整数233)对应的二进制整数为(11101001)_{2}(表示二进制的整数11101001)。


十进制的表示——(233)_{10}=2*10^2 3*10^1 3*10^0。


二进制的表示——(11101001)_{2}=1*2^7 1^2^6 1*2^5 0*2^4 1*2^3 0*2^2 0*2^1 1*2^0。


最右边的数字的指数为0,每向左1位的数字,其指数加1,如从右至左第2位数指数为1,从右至左第3位数指数为2,依次类推。


多少进制就是多少进制的几次幂。


十进制转换为二进制

我们经常需要在二进制和十进制之间转换。


十进制转换为二进制,采用的是“除以2求余数”的算法。将整数不断除以2,每次得到的余数就是由低到高的二进制位。




十进制转换为二进制的例子




“除以2”的过程,得到的余数是从低到高的次序,而输出则是从高到低,这就需要一个东西来做“次序反转”,而栈的特性正是“反转次序”,所以栈在这里就有用武之地了。


用栈来实现就是:


class Stack: def __init__(self): self.items = [] def isEmpty(self): return self.items == [] def push(self, item): self.items.append(item) def pop(self): return self.items.pop() def peek(self): return self.items[len(self.items)-1] def size(self): return len(self.items) def pideBy2(decNumber): remStack = Stack() while decNumber > 0: rem = decNumber % 2 remstack.push(rem) decNumber = decNumber // 2 binString = "" while not remstack.isEmpty(): binString = binString str(remstack.pop()) return binString print(pideBy2(42)) <<<101010

十进制转换为N进制

上述十进制转换为N进制的思想也可以扩展为,把十进制转换为n进制,只需要把“除以2”改为“除以N”即可。


计算机中有另外两种常用的进制,分别是八进制和十六进制。十六进制高于十进制,规定用A、B、C、D、E、F分别表示10、11、12、13、14、15。


八进制和十六进制的例子如下:


(233)_{10}=(351)_{8}=(E9)_{16}。


(351)_{8}=3*8^2 5*8^1 1*8^0。


(E9)_{16}=14*16^1 9*16^0。


如何表示八进制和十六进制

上述代码改成十进制转换为十六进制,因为十六进制高于十进制,它有ABCDEF等6个字母表示数字,所以代码中也要有相应的改变。


以下是十进制数转化为n进制数(n<=16)的代码(代码中n用base代替):


class Stack: def __init__(self): self.items = [] def isEmpty(self): return self.items == [] def push(self, item): self.items.append(item) def pop(self): return self.items.pop() def peek(self): return self.items[len(self.items)-1] def size(self): return len(self.items) def baseConverter(decNumber, base): digits = "0123456789ABCDEF" remstack = Stack() while decNumber > 0: rem = decNumber % base remstack.push(rem) decNumber = decNumber // base binString = "" while not remstack.isEmpty(): binString = binString digits[remstack.pop()] return binString print(baseConverter(25, 2)) # 求十进制数25转换为二进制后的结果。 print(baseConverter(25, 16)) # 求十进制数25转换为十六进制后的结果。。 <<< 11001 19 <<<


To be continued.


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至123456@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息