上一节我们讲严格模式的时候,提到过严格模式中不可以使用八进制。那本节我们来讲一下,什么是二进制、八进制、十六进制。
十进制
十进制数就是用 0、1、2....9,这十个数来表示的数。十进制是以 10 为基础数字系统,是在世界上应用最广泛的进位制。根据 “逢十进一” 的法则进行计数时,每十个相同的单位组成一个和它相邻的较高的单位,这种计数法叫做十进制计数法,简称十进制。
其实我们数学学习的就是十进制,在日常生活中使用的也大多是十进制,例如1、2、3、7、28、47、100等这些常见的数字,就是十进制。
JavaScript 支持把十进制数值转换为二进制、八进制和十六进制等不同进制的数值。
二进制
二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为 2,进位规则是“逢二进一”,借位规则是“借一当二”。
我们只要记住,二进制仅由 0 和 1 组合而成,例如 1100011 这样的数就是二进制数,不同的组合表示不同的数值,但如果一个数里面有除了0和1 以外的数字,那么这个数就不是二进制啦。
示例:
十进制转二进制:
var a = 100; // 这是一个十进制
result = a.toString(2); // 十进制转二进制
console.log(result);
// 输出:1100100
二进制转十进制:
var n = "1100100" // 这是一个二进制的字符串
result = parseInt(n, 2); // 二进制转十进制
console.log(result);
// 输出:100
八进制
八进制(Octal)是一种以 8 为基数的计数法,采用 0,1,2,3,4,5,6,7 八个数字,逢八进 1。一些编程语言中常常以数字 0 开始表明该数字是八进制。八进制的数和二进制数可以按位对应(八进制一位对应二进制三位),因此常应用在计算机语言中。
说具体一点就是以数字 0 开头,可以由 0 到 7 之间的这八个数字组成的就是八进制,例如 075,就是一个八进制的数。
示例:
十进制转为八进制:
var a = 100; // 这是一个十进制
result = a.toString(8); // 转八进制
console.log(result);
// 输出:144
八进制转十进制:
var n = "056" // 这是一个八进制的字符串
result = parseInt(n, 8); // 八进制转十进制
console.log(result);
// 输出:46
十六进制
十六进制(hexadecimal)是计算机中数据的一种表示方法。同我们日常中的十进制表示法不一样。一般用数字 0到 9 和字母 A 到 F(或a~f)表示,这些数字和字母任意组合用来表示 0~15 之间的某个字。其中 A~F 表示 10~15,这些称作十六进制数。
十六进制在数学中是一种”逢十六进一,借一当十六“的进位制,例如,数字 0、3、6、9、A、D、F、419、EA32、80A3、BC00 都是有效的十六进制。
示例:
十进制转为十六进制:
var a = 100; // 这是一个十进制
result = a.toString(16); // 转十六进制
console.log(result);
// 输出:64
十六进制转十进制:
var n = "AF64" // 这是一个十六进制的字符串
result = parseInt(n, 16); // 十六进制转十进制
console.log(result);
// 输出:44900
动手试一试
- 请讲二进制 10101010 转为十进制?
- 请将十进制数 38 分别转为二进制、八进制、十六进制?
- 请将十六进制 F60 转为十进制?