成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

websocket 二進制數(shù)據(jù)傳輸基礎準備工作

LeviDing / 2751人閱讀

摘要:例如,十進制數(shù),用二進制表示則為。按位操作符操作數(shù)字的二進制形式,但是返回值依然是標準的數(shù)值。不同為真相同為假二進制按位異或運算從左到右按位非為真,為假對每一項進行非操作,遇真則假,遇假則真。

二進制與十六進制

二進制用 0 1 表示 2= 10
十六進制 前綴0x 用0123456789ABCDEF表示 2= 0x2
二進制與十六進制的轉換
十六進制的每位 等于二進制的四位

十六進制 0xF = 15(十進制) = 1111(二進制) 
十六進制每位最大就是二進制的 1111 = 15(十進制)

二進制
2 = 10
十六進制
2 = 0x2 = 0010
規(guī)律很清晰了吧

20 = 10100(6位 口算得出要補齊8位)
0001 0100
0001 = 1
0100 = 4
20 = 0001 0100 = 0x14
二進制字節(jié)

一個字節(jié)是8個二進制位
0000 0000 - 1111 1111 = 0-255 代表一個字節(jié)可以表示256個字符

UTF編碼字節(jié) UTF-16

UTF-16大部分使用兩個字節(jié)編碼,編碼超出 65535 的使用四個字節(jié)
0x0000 - 0xFFFF 兩個字節(jié)
0x010000 - 0x10FFFF 四個字節(jié)

UTF-8

0x0000 - 0x007F 一個字節(jié)
0x0080 - 0x07FF 兩個字節(jié)
0x0800 - 0xD7FF 、0xE000 - 0xFFFF 三個字節(jié)
0x010000 - 0x10FFFF 四個字節(jié)
注: Unicode在范圍 D800-DFFF 中不存在任何字符

有符號32位整數(shù)節(jié)

所有的按位操作符的操作數(shù)都會被轉成補碼(two"s complement)形式的有符號32位整數(shù)。

反碼、補碼 負數(shù)

js中的二進制轉換是不會轉換符號的

1的反碼 補碼 以及 -1
1 = 0000 0000 0000 0000 0000 0000 0000 0001
反碼 1 =0、0 =1 下面會講述按位操作符 按位非 ~ 其實就是反碼

1111 1111 1111 1111 1111 1111 1111 1110

補碼后 末位+1

1111 1111 1111 1111 1111 1111 1111 1111 = -1
按位操作符

按位操作符(Bitwise operators) 將其操作數(shù)(operands)當作32位的比特序列(由0和1組成),而不是十進制、十六進制或八進制數(shù)值。例如,十進制數(shù)9,用二進制表示則為1001。按位操作符操作數(shù)字的二進制形式,但是返回值依然是標準的JavaScript數(shù)值。
&、| 在轉碼中比較常用

按位與 &

1為真,0為假 全真則真 遇假為假

js 內置方法
var a = 1;
a.toString(2);

十轉二
2 = 10
3 = 11
二進制進行按位與運算 從左到右
1 && 1 = 1
0 && 1 = 0
2 & 3 = 10 = 2
按位或 |

1為真,0為假 遇真則真 全假為假

8 = 1000
9 = 1001
二進制按位或運算 從左到右
1 || 1 = 1
0 || 0 = 0
0 || 0 = 0
0 || 1 = 1  

8 | 9 = 1001 = 9
按位異或 ^

1為真,0為假。不同為真 相同為假

4 = 100
5 = 101
二進制按位異或運算 從左到右
1  1  = 0
0  0  = 0
0  1  = 1
4 ^ 5 = 001 = 1
按位非 ~

1為真,0為假 對每一項進行非操作,遇真則假,遇假則真。(速算, ~x =-1*x-1)

6 = 00000000 00000000 00000000 00000110
    11111111 11111111 11111111 11111001 = -7
按位移動操作符

有兩個操作數(shù) 左側為要被移動的數(shù)字(十進制,但是操作是內部對二進制操作)
右側為移動的長度方向根據(jù)操作符移動,返回根據(jù)被操作數(shù)相同類型的結果,必須小于32位

左移操作符 <<

a << b 右側末位開始補 b個0 左側舍去b個位

11 = 00000000 00000000 00000000 00001011

11 << 2 
右側末位開始補 b個0
00000000 00000000 00000000 00001011 00 
左側舍去b個位
000000 00000000 00000000 00001011 00
格式化
00000000 00000000 00000000 00101100 = 44
-44 = 
(反碼)11111111 11111111 11111111 11010011
(補碼)11111111 11111111 11111111 11010100


-11 =
(反碼)11111111 11111111 11111111 11110100 
(補碼)11111111 11111111 11111111 11110101
-11 << 2
右側末位開始補 b個0 
11111111 11111111 11111111 11110101 00 
左側舍去b個位
111111 11111111 11111111 11110101 00
格式化
11111111 11111111 11111111 11010100 = -44
帶符號右移操作符( 記住左側首位 0 代表正 ,1 代表負) >>

a >> b 左側首位開始補 b 個 首位值 右側側舍去b個位

12 = 00000000 00000000 00000000 00001100
12 >> 2
補 b 個 首位值 
00 00000000 00000000 00000000 00001100
右側舍去b個位
00 00000000 00000000 00000000 000011
格式化
00000000 00000000 00000000 00000011 = 3
-3 = 
(反碼)11111111 11111111 11111111 11111100
(補碼)11111111 11111111 11111111 11111101

-12 >> 2
-12 = 
(反碼)11111111 11111111 11111111 11110011
(補碼)11111111 11111111 11111111 11110100
-12 >> 2
補 b 個 首位值 
11 11111111 11111111 11111111 11110100
右側舍去b個位
11 11111111 11111111 11111111 111101
格式化
11111111 11111111 11111111 11111101 = -3

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://systransis.cn/yun/109337.html

相關文章

  • webSocket 二進傳輸基礎準備-UTF-16和UTF-8轉Unicode

    摘要:前言今天來學習轉,轉以達成之間的互轉?;纠冒次徊僮鞣栠\算符就可以完成。今天這里只做轉,轉,后續(xù)轉換可以看前面的文章?;A準備工作轉轉轉為了更好的理解,我們來使用轉那一期的結果來進行轉,轉 前言 今天來學習UTF8轉Unicode,UTF16轉Unicode以達成UTF8,UTF16之間的互轉。提煉成函數(shù)的公式我并沒有放出來,我的目的只是為了更加理解 字符編碼之間的關系。如果你需...

    張春雷 評論0 收藏0
  • JavaScript是如何工作: 深入探索 websocket 和HTTP/2與SSE +如何選擇正

    摘要:數(shù)據(jù)作為消息通過傳輸,每個消息由一個或多個幀組成,其中包含正在發(fā)送的數(shù)據(jù)有效負載。幀數(shù)據(jù)如上所述,數(shù)據(jù)可以被分割成多個幀。但是,規(guī)范希望能夠處理交錯的控制幀。 文章底部分享給大家一套 react + socket 實戰(zhàn)教程 這是專門探索 JavaScript 及其所構建的組件的系列文章的第5篇。 想閱讀更多優(yōu)質文章請猛戳GitHub博客,一年百來篇優(yōu)質文章等著你! 如果你錯過了前面的章...

    cuieney 評論0 收藏0
  • 實戰(zhàn) swoole【聊天室】

    摘要:是一個請求對象,包含了客戶端發(fā)來的握手請求信息事件函數(shù)中可以調用向客戶端發(fā)送數(shù)據(jù)或者調用關閉連接事件回調是可選的當服務器收到來自客戶端的數(shù)據(jù)幀時會回調此函數(shù)。 前言:了解概念之后就應該練練手啦,不然就是巨嬰 有收獲的話請加顆小星星,沒有收獲的話可以 反對 沒有幫助 舉報三連 代碼倉庫 實戰(zhàn)swoole【聊天室】 在線體驗 準備工作 需要先看初識swoole【上】,了解基本的服務端...

    andycall 評論0 收藏0
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何選擇

    摘要:注意值得注意的是,一旦接收到所有幀并且原始消息有效載荷已被重建,客戶端將僅被通知關于新消息。實驗表明,在之后創(chuàng)建了第二個幀。以下值目前正在使用中代表繼續(xù)幀。 這一次,我們將深入到通信協(xié)議的世界中,對比并討論它們的屬性并構建部件。我們將提供WebSockets和HTTP / 2的快速比較。 最后,我們分享一些關于如何選擇網(wǎng)絡協(xié)議。 概述 如今,擁有豐富動態(tài)用戶界面的復雜網(wǎng)絡應用程序被視為...

    calx 評論0 收藏0
  • 【譯】 WebSocket 協(xié)議第七章——關閉連接(Closing the Connection)

    摘要:狀態(tài)碼當關閉一個連接時如在開始握手已經(jīng)完成后,發(fā)送一個關閉幀,終端可能會說明關閉的原因。表示終端由于協(xié)議錯誤中止了連接。這個狀態(tài)碼是為了給上層應用表示連接被異常關閉如沒有發(fā)送或者接受一個關閉幀這種場景的使用而設計的。 概述 本文為 WebSocket 協(xié)議的第七章,本文翻譯的主要內容為 WebSocket 連接關閉相關內容。 關閉連接(協(xié)議正文) 7.1 定義 7.1.1 關閉 Web...

    Freeman 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<