前言:计算机能直接识别和执行的是机器语言,它是有一系列的二进制数组成,代表特定的指定和数据。计算机中的数据都是以二进制形式进行存储,所以对于一个专业程序员来说,数据是计算机的核心,了解进制就尤为重要。
计算机中的数制表示方法有二进制、十进制、八进制、十六进制,他们有什么用?各进制又是如何相互转换的?
一、各进制含义和概念
二进制:是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”, 0b表示二进制
八进制:一种以8为基数的计数法,采用0,1,2,3,4,5,6,7八个数字,逢八进1。一些编程语言中常常以数字0开始表明该数字是八进制。八进制的数和二进制数可以按位对应(八进制一位对应二进制三位),因此常应用在计算机语中。0o表示二进制
十进制:600,3/5,-7.99……看着这些耳熟能详的数字,你有没有想太多呢?其实这都是全世界通用的十进制,即满十进一,满二十进二,以此类推。
十六进制:是计算机中数据的一种表示方法。它由0-9,A-F组成,逢十六进1,十六进制的数和二进制数可以按位对应(十六进制一位对应二进制四位)字母不区分大小写。与10进制的对应关系是:0-9对应0-9;A-F对应10-15,0x表示十六进制
二、各进制的相互转换问题
2.1各进制转换成10进制
以一段代码举例
那他们是怎么得来的呢?请看下面分析。
2.2各进制转二进制
三、一个字节能够表示的整数范围值
一个比特位有0或1组成,八个比特位表示一个字节
8bit(比特)=1byte
无符号数表示范围
有符号数表示范围
0b | 0x | 10 | |
00000000 | 0 | 0 | |
00000001 | 1 | 1 | |
00000010 | 2 | 2 | |
00000011 | 3 | 3 | |
00000111 | 7 | 7 | |
00001111 | F | 15 | |
00011111 | 1F | 31 | 1*16+15=31 |
00111111 | 3F | 63 | 3*16+15=63 |
01111111 | 7F | 127 | 7*16+15=127 |
10000000 | 80 | 128 | |
11000000 | c0 | 192 | 128+64=192 |
11111111 | FF | 255 |