在程式設計師這個行業中,我們經常會接觸到很多的開發文件,這些開發文件會告訴我們該如何去開發一個專案。其中有一種開發文件是關於如何解析前端伺服器下發的“表”。比如比較著名的就是數字電視中的PSI/SI表了。PSI/SI表是數字電視前端裝置下發的關於節目的表,其中定義了好多的引數,程式設計師要做的就是按照PSI/SI開發文件的要求正確解析這些表中的引數即可。
但是有個問題,但凡是這些“表”啊都會涉及到兩個術語,一個叫“uimsbf”,一個叫“bslbf”,也就是開發文件中經常會以下面這種形式來展現給程式設計師:
你看這份開發文件,說有個表叫“A_Table”,這個表裡有很多的引數,比如有table_id、section_length、reserved、version等,這些引數就是這個表中的有機組成體,也是程式設計師要去解析的引數。你會看到在這個表中的最後一列“識別符號”列就出現了我說的uimsbf和bslbf,如下圖所示:
程式設計師需要知道uimsbf和bslbf的意思才能正確解析出表中的那些引數。這是程式設計師工作中一項很常見的工作也是程式設計師必備的技能,下面我來解釋下uimsbf和bslbf的意思,給想要從事資訊科技領域的朋友們提供一個參考。
uimsbf,全稱叫“unsinged integer, most significant bit first”看上去似乎很難懂是不是?其實還好啦!
unsinged integer:意思是無符號整數。比如表中的table_id這個引數就是無符號整數,這就意味著table_id的二進位制形式的最高位即使是1也是資料的一部分而不是表示符號位。比如table_id二進位制是10011100,最高位是1,但是1並不表示負數的意思,而是與其他七個二進位制位一起作為table_id的資料值。
most significant bit first:意思是最重要的位在先,說的再通俗一點就是高位在先。仍以table_id引數為例,假如它的二進位制位還是10011100,那麼你說高位是最左邊的1還是最右邊的0?是最左邊的1,所以計算這個二進位制數字的十進位制值時,要從左往右算而不是從右往左算。
下面再來看bslbf的意思。
bslbf,全稱叫“bit string, left bit first ”看上去也挺難懂是不是?
bit string:就是位串的意思。一個二進位制數字不就是一個位串嗎?像上面我說的10011100它就是一個位串呀!
left bit first:就是左邊才是第一個位。你說對於10011100來說左邊是1還是0呢?是1,這就告訴你這個二進位制位串要從左往右看,而不是在嘴裡念成00111001。
知道了uimsbf和bslbf的意思,那麼程式設計師就可以按照這個意思去正確地解析出表中的各個引數了,關於怎麼個解析法,也就是解析的演算法解析的過程是怎麼弄的?這也是你進入IT技術領域要掌握的一個技能,關注我吧,我是數字視聽科普,專注於家庭資訊科技領域科普,我們後續繼續聊!
在程式設計師這個行業中,我們經常會接觸到很多的開發文件,這些開發文件會告訴我們該如何去開發一個專案。其中有一種開發文件是關於如何解析前端伺服器下發的“表”。比如比較著名的就是數字電視中的PSI/SI表了。PSI/SI表是數字電視前端裝置下發的關於節目的表,其中定義了好多的引數,程式設計師要做的就是按照PSI/SI開發文件的要求正確解析這些表中的引數即可。
但是有個問題,但凡是這些“表”啊都會涉及到兩個術語,一個叫“uimsbf”,一個叫“bslbf”,也就是開發文件中經常會以下面這種形式來展現給程式設計師:
你看這份開發文件,說有個表叫“A_Table”,這個表裡有很多的引數,比如有table_id、section_length、reserved、version等,這些引數就是這個表中的有機組成體,也是程式設計師要去解析的引數。你會看到在這個表中的最後一列“識別符號”列就出現了我說的uimsbf和bslbf,如下圖所示:
程式設計師需要知道uimsbf和bslbf的意思才能正確解析出表中的那些引數。這是程式設計師工作中一項很常見的工作也是程式設計師必備的技能,下面我來解釋下uimsbf和bslbf的意思,給想要從事資訊科技領域的朋友們提供一個參考。
uimsbfuimsbf,全稱叫“unsinged integer, most significant bit first”看上去似乎很難懂是不是?其實還好啦!
unsinged integer:意思是無符號整數。比如表中的table_id這個引數就是無符號整數,這就意味著table_id的二進位制形式的最高位即使是1也是資料的一部分而不是表示符號位。比如table_id二進位制是10011100,最高位是1,但是1並不表示負數的意思,而是與其他七個二進位制位一起作為table_id的資料值。
most significant bit first:意思是最重要的位在先,說的再通俗一點就是高位在先。仍以table_id引數為例,假如它的二進位制位還是10011100,那麼你說高位是最左邊的1還是最右邊的0?是最左邊的1,所以計算這個二進位制數字的十進位制值時,要從左往右算而不是從右往左算。
下面再來看bslbf的意思。
bslbfbslbf,全稱叫“bit string, left bit first ”看上去也挺難懂是不是?
bit string:就是位串的意思。一個二進位制數字不就是一個位串嗎?像上面我說的10011100它就是一個位串呀!
left bit first:就是左邊才是第一個位。你說對於10011100來說左邊是1還是0呢?是1,這就告訴你這個二進位制位串要從左往右看,而不是在嘴裡念成00111001。
知道了uimsbf和bslbf的意思,那麼程式設計師就可以按照這個意思去正確地解析出表中的各個引數了,關於怎麼個解析法,也就是解析的演算法解析的過程是怎麼弄的?這也是你進入IT技術領域要掌握的一個技能,關注我吧,我是數字視聽科普,專注於家庭資訊科技領域科普,我們後續繼續聊!