计算机进制进制的转换
Posted nongma-reddy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机进制进制的转换相关的知识,希望对你有一定的参考价值。
现代的计算机和依赖计算机的设备里都用到二进制(即0和1)来保存和表示数据,一个二进制表示一个比特(Bit)。
数字在计算机中表现的方式常见的有四种:二进制、八进制、十进制、十六进制。
进制的基础
-
十进制:
- 基数:0~9
- 进位:逢十进一
- 位权:10的n次方(n从低位到高位从0开始依次增加。)
- python程序中表示方式:十进制在程序中直接写
-
二进制:
- 基数:0、1
- 进位:逢二进一
- 位权:2的n次方(n从低位到高位从0开始依次增加。)
例:101011=1*2^0+1*1^2+1*0^2+1*2^3+0*2^4+1*2^5=1+2+0+8+0+32=43 - python程序中表示方式:0b101、0B101001
-
八进制:
- 基数:0~7
- 进制:逢八进一
- 位权:8的n次方 例:123=3*8^0+2*8^1+18^2=3+16+64=83
- python程序中表示方式:0o123、0O227
-
十六进制:
- 基数:0~9、A/a~F/f
- 进位:逢十六进一
- 位权:16的n次方 例:123=3*16^0+2*16^1+116^2=3+32+256=291
- python程序中表示方式:0x123、0X3f3
进制的转换
-
其他进制转十进制:
-
手动转换:每一位上的数乘以位权。
0b1011 -> 2^0+2^1+0+2^3=1+2+8=11
0o1011 -> 1*8^3+0*8^2+1*8^1+1*8^0=512+0+8+1=521
0x1011 -> 1*16^3+0*16^2+1*16^1+1*16^0=4096+0+16+1=4113
-
-
十进制转其他进制:
-
手动转换:辗转取余法
-
十进制转二进制:
-
十转八:
?
-
十转十六:
?
-
-
-
八进制、十六进制与二进制之间的转换:
-
八进制转二进制:421
-
十六进制转二进制:8421
-
-
二进制与八进制、十六进制之间的转换:
- 八进制转二进制:将3位的2进制数转换成1位的8进制
421
- 十六进制转二进制:将4位的2进制数转换成1位的16进制
8421
- 八进制转二进制:将3位的2进制数转换成1位的8进制
以上是关于计算机进制进制的转换的主要内容,如果未能解决你的问题,请参考以下文章
Int32 最大的数值是多少???(附十进制十六进制相互转换且包含正负数的java代码)