十进制与二进制的转换
十进制与二进制的互转是计算机里面最常见的进制转换,除了这两种转换以外,我们还有其它的进制转换,如8进制与16进制,这个都可以相互转换,在JavaScript里面提供了两个方式对进行进行互相转换。 这两个方法其实我们都已经学过了
十进制数字转其它进制
var a = 66;
var b = 18;
上面的两个数都是十进制,如果要将这两个数转2进制,我们应该怎么做呢?
如果采取我们以前手动的方式来完成,我们可以通过取余来进行
我们程序员除了要掌握手动的方式来转换以后,还可以能过我们的代码来进行转换
我们的进十进制数据可以通过调用toString(radix?:number)
的方式来转换成字符串,在转换成字符串的时候,它默认是以十进制的方式来进行转换,其实它还可以转换成其它进制
a.toString(2); //得到2进制的结果 "1000010"
b.toString(2); //得到了2进制的结果 "10010"
toString()的这个方法不仅仅可以转换成二进制,它是可以转换成任何进制
目标进制如果不写则默认是10
toString(目标进制); //这样它就可以转换成我们的目标进制了
我们现在通过进制转换来列举一个例子,这个例子就是我们的CSS里面颜色值,在CSS里面,我们可以通过16进制来表示颜色 ,也可以通过rgb
来表示 ,如
color:#ffffff;
color:rgb(255,255,255);
上面的两个颜色都代表的是白色,现在我们就用JS来看一看,它们是否相等
FF
是16进制的值,255
是十进制的值,它们两个值是否相等我们现在通过代码来看
var a = 255; //这是十进制的255,现在将它转成16进制
a.toString(16); //转换成16进制以后得到结果 "ff"
同理,如果我们将16进制的ff
转换成10进制呢
十六进制字面值的前两位必须是 0x,后跟任何十六进制数字(0~9 及 A~F)。其中,字母 A~F 可以大写,也可以小写
var b = 0xff; //这是十六进制的ff,现在将它转换成10进制
b.toString(10); //得到结果255
其它进制转十进制数字
var a = "10010"; //这是2进制的10010,现在要转成十进制的数
var b = "1000010"; //这是2进制的1000010,要转10进制
上在的图是一个手动计算的过程
使用parseInt(s:string,radix?:number):number
的方式来进行转换
parseInt(a,2); //得到10进制的结果 18
parseInt(b,2); //得到10进制结果 66
parseInt("ff",16); //得到19进制结果 255
parseInt可以将非十进制的数字转换成我们的十进制,语法格式如下
parseInt(原来的数字,原来的进制);
评论区