js数值之间的转换

数值转换

今天我们来讲一下什么是数值的运算和进制之间的转换吧,主要讲二进制和十六精致之间的转换,顺便讲一下数值的储存

一、字符串转换



String()

这个是强转字符串类型,因该都知道吧,不知道也没有关系看下面的图片吧,不仅可以转换变量还可以转换常量,比如ture,false,null之类的不会变的



toString()

这也是一个字符串类型转换,不够他比较智能,在toString(2-36)在括号里写值就是转换成什么进制,范围range是2-36,在下面图片中可以看到我错误的所在

二、数值之间的转换



Number()

这个就是数据类型强制转换为整数类型

看到这里发现了什么了没有,就是字符串类型在控制台显示为黑色,数值型显示为蓝色,没发现再仔细看看



paseInt()

这个是转换为整数型,会去掉小数点,但是不会四舍五入,他有一个特点,就是如果第0位是字母或符号直接转换结果就是NaN,就是不规则的数值类型,转换机制是从第0位开始到下一个字母,如果没有字母就是输出完整的数字



paseFloat()

这个就是转换位浮点型,不会去点小数,float和css中的浮动不就是一个单词吗注意到了吗,它遇到字母的机制是和praseInt()一摸一样的,看到最大的小数位数了没,对没错就是16位



to.fixed()

这个是保留几位小数,它是会四舍五入的,看到下面我保留99位小数是不应该在这个数值后面加0吗?为什么出现了一大串数值不对的数字,这是应为0.33333这个小数在转换过程中数据消耗了,你知道的计算机只认识二级制所以在转换过程中丢失了

三、二进制和十六进制之间的转换

首先我们要明白什么是二进制什么是十六进制,二进制是01组成的一串数字,而十六进制则是从1到f之间组成的数字

二进制的规则是1*2(位数)或0*2(位数),位数为1就是1*2(位数),位数为就是0*2(位数),这里的位数是平方=位数的值,最后在把所有的位数的和加起来就是这个二进制的和,如图所示我们这个二进制对应的位数的值为1 2 4 8把他加起来就是我们这个二进制的值=15,如果后面还有数字依旧遵顼这个规则

那看到这里又想改如何转换十六进制了,我们把二进制转换为数字,如图所示最上面是数字f=15=1111,这样的一个转换关系,首先我把二进制从后面往前分割,四位四位的分割,然后转换为数字,四位一算,十进制转十六禁止应该明白吧,不明白也没关系,123456789abcdef这个顺序就是16进制你的数字是多少就是那个字母,而16精致就是反着转换明白了吗






























课外扩展

如果你接着看了下去,说明你明白了数值类型之间的转换,这可是基础一定要会,那么我们就讲讲扩展的知识吧

十六进制扩展



div{ background-color:#ffffff; }

看到这个颜色发现这个很熟悉了没有,对没错就是十六进制只是前面加上了一个#号,(⊙ˍ⊙)所以有没有想到这么运用这个, 我说说我的吧,输出是再见前面加上一个"f"+让后面的十六进制一直加,不就达到了一个自动更换颜色的程序了吗,发个实例程序吧



var color=0x00000000;
setInterval(function(){
color+=2;
document.getElementById("div").style.backgroundColor="#"+color.toString(16);
},5)

看明白了这个程序的意思了吗,setInterval就是一只调用内部的函数,color=0x00000000前面的0x是16进制的代表如果你不写这个他不就变成了十进制的数字了吗,我让每一次循环时他都加2,然后再把这个颜色输出出来,到最大值时他就停了或者你自己写条件,自己试试吧

二进制扩展

你知道ipv4地址也是用二进制表达的吗,最大个位数是(11111111)八个一组成的二进制网络协议中是要去头去尾的应为255是广播地址,头是你的IP地址段的头这里就举例为1吧,通常1都用在交换机上了,你可以看的你的默认网关,就明白了他是你上一级设备的ip由他给你分发IP地址,我们在拿一个最大网段的IP地址举例吧,255.255.255.254, 这个IP你怎么看,就是11111111,11111111,11111111,11111110,就是这样的一个二进制组成的,那么常说的ip划分又是什么了,子网掩码又是什么了,

图中可以看出来写1的都是有数据的,而且都还写满了,所以我们无法该买你子网掩码位置都写满了的位置的IP地址,但是最后还有8个0,这个后面就都是可以改变的,不过最大的改变位数是8位都填上一也就我们只能写192.168.1.1-192.168.1.255,而且我们还要去头去尾还有网络段号,192.168.1.3-192.168.1.254,其实不用想的太麻烦我们只用遵行一个规则就是前奇后偶

但看到这里又有小伙伴不干了,我不想要这么大我只想要128台电脑,这是我们就需要计算了这就是IP划分了

看到我改的明白了什么了没有,如果要IP只能从1-128,那么就在子网掩码第一位填上一不过相应的子网掩码也就要产生变化了,这时我们的ip就只能从1-128或者从128-255了,看到这里明白了吗,记得去头去尾去网络段号,遵循前奇后偶的规则

NaN

知道NaN吗他是一个不规则的数据类型,isNaN()可以用来检测你输入的值如果字串内全是数字它的返回值就是false,如果有字母或者全是字母他的返回值即使true

我们观察到一个很神奇的现象就是NaN就连自己都不想等的,竟然数据类型等于Number

赋值运算



var i=1
var a=3-i--

看出来a等于多少了吗,这需要你理明白计算过程赋值是从右往左,但计算是从左往右的(除了赋值都是),所以3先减上i然后i在--的所以等于2,如果--在前面就是3了明白了吗

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值