快速理解javascript二进制的计算方法

什么是进制数

所谓进制数,就是满多少进位。
常用的十进制,个、十、百、千、万,逢十进一。
当前位最大值就是它的上一个进位减1。
十进制
1位最大值是9
两位最大值是99
三位最大值是999
八进制
一位最大值是7
两位最大值是77
三位最大值是777
十六进制
一位最大值是15
两位最大值是255
三位最大值是4095
二进制
一位最大值是1
两位最大值是3
三位最大值7

任何进制转十进制都很简单
二进制转十进制,例如:111=1*2^2+1*2^1+1*2^0=7
十六进制转十进制,例如:16=1*16^1+6^16^0=22
八进制转十进制,例如:44=4*8^1+4*8^0=36
十进制转二进制(用程序的就是除2取余,余数大于0就是1反之0):
128=10000000
但是我们平时不能什么都用程序来算是吧。只要我们记住常用的2次方值就行,
例如
2^0=1
2^1=2
2^2=4
2^3=8

2^7=128

8(2^7)7(2^6)6(2^5)5(2^4)4(2^3)3(2^2)2(2^1)1(2^0)
二进制1286432168421
12810000000
13010000010
14410010000

上面的表格看懂了吗。自己心算一下

二进制

二进制是计算机机器码,因为CPU都是通过晶体管里面电路的电压状态表示0和1。如果在计算机中任何信息最终会被转换成二进制。计算机中一个字节=8位二进制
例如ASCII码是由7位二进制表示128个符号,unicode 编码有8、16、32位不同的编码格式,位数长,表示能容纳很多的字符。
javascript的二进制是32位有符号整数组成的二进制,计算方式采用的是补码形式.
符号由二进制最高位0表示正数1表示负数
例如下面:
我们创建一个了一个8位的类型数组。
8位的二进制最大值只能表示255,加上int8array是一个符号数组,代表值只能表示-128 ~ 127之间。为什么不是-100 ~ 155
为什么是这个区间,接下要说一下二进制的补码。

8(2^7)7(2^6)6(2^5)5(2^4)4(2^3)3(2^2)2(2^1)1(2^0)
二进制1286432168421
12810000000
12701111111
000000000
-111111111

如果8位的二进制:01111111=127 因为最高位符号是0,0表示正数
如果8位的二进制:1000000=-128 因为最高位符号是1,1表示负数,然后1所在位置刚好是-1* 2^(8-1)=-128
如果8位的二进制:1000011=? 是多少,答案是:-128+1* 2^1 +1* 2 ^0=-125

二进制位超出怎么办?

下面的例子277打印出是21,为什么了。我们讲过8位最大的值是255,即是2^8-1=255
那么想要表示277,只能用9位二进制来表示
277=100010101,但是我们只有8位,没有9位,那么只能把左边超出八位全部去掉
100010101变成8位后:00010101 最第高位是0,表示正,即是正21

var int8=new Int8Array(1);// 创建一个8位有符号整数数组
int8[0]=277;
console.log(int8[0]);// 打印出来发现是21

RGB和十六进制

三原色是由Red green blue 三种颜色组成,每一种有256种即256 * 256 * 256=16777216,也就是这三种颜色可以能组合出16777216种颜色
RGB:rgb(255,255,255)
HEX:#ffffff
ff=255

十六制1-9,10=a,11=b,12=c,13=d,14=e,15=f
那么f二进制是:1111=15
两个ff的二进制是:11111111=255
从上面我们可以看出16进制最大值是15,15二进制是1111,刚才好4位长度可以表示.
11111111=255 转换16进制,可以把二进制变成四位一组
1111(15) 1111(15) =ff

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值