~~----------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------
十进制数字 | 二进制表示 |
---|---|
128 | 1000 0000 |
192 | 1100 0000 |
224 | 1110 0000 |
240 | 1111 0000 |
248 | 1111 1000 |
252 | 1111 1100 |
254 | 1111 1110 |
255 | 1111 1111 |
----------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------
十进制数字 | 规律 |
---|---|
128 | 128+ 2^6 (64)=192 |
192 | 192+ 2^5 (32)=224 |
224 | 224+ 2^4 (16)=240 |
240 | 240+ 2^3 (8)=248 |
248 | 248+ 2^2 (4)=252 |
252 | 252+ 2^1 (2)=254 |
254 | 254+ 2^0 (1)=255 |
255 | 255是最后一个 |
你会发现规律,从128--225,每两个数之间的差是递减的:64-32-16-8-4-2-1.把这个记住。----------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------
上面的都记住之后,我们就可以开始理解这个算法了。
我们把8位的二进制,从右向左,对应数字 2的0次方(2^0) 至 2的7次方(2^7)。那么写出来就是:
1111 1111 |
---|
128 -64-32-16 8-4-2-1 |
这个不难理解,将这个记住就ok。
将X(0<X<256)转二进制,我们开始计算(128.64.32.16.8.4.2.1)哪些加起来等于X。我们只算加起来等于X,我们不算减法等于X,因为减法需要向前借一位,个人感觉比较复杂,不建议。
在转化二进制中,128.64.32.16.8.4.2.1,这八个数,用到哪个,哪个对应的位置就写1,其他为0.----------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------
将 129转换成二进制。
算法:在128.64.32.16.8.4.2.1中选择数字加起来等于129.我们发现128+1=129.
我们知道128用二进制表示是 1000 0000(最开始就让你记忆的那些数字),再加上规则三,用到哪个数,哪个数就写1,因此我们得到答案是:1000 0001
将168转换成二进制。
算法:我们发现128+40=168,32+8=40,所以就是128+32+8=168,所以我们把对应的数字写成1,因此我们得到的答案是: 1010 1000
将244转换成二进制。
算法:我们发现我们已经知道240的二进制了:1111 0000,(之前记忆的),那么就是240+4=244.所以我们将240的二进制写出来,然后将4对应的位置写成1。因此我们得到的答案就是1111 0100.
将253转换成二进制。
算法:我们已经知道252的二进制了:1111 1100(之前记忆的),那么就是252+1=253,所以我们将1对应的位置写成1,得到答案1111 1101
将80转成二进制。
算法:64+16=80,将64和16这两位写成1,那么得到答案:0101 0000,最前面的0可以省略,所以我们的答案也可以写成101 0000
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。