1. 程式人生 > 實用技巧 >【轉】Scala中json格式、字串、map相互轉換

【轉】Scala中json格式、字串、map相互轉換

一.預習原碼,補碼,移碼

試題1
二進位制數-0111的8位原碼是 10000111。

試題2
二進位制數-0111的8位反碼是 11111000。

試題3
二進位制數-0111的8位補碼是 11111001。

試題4
二進位制數-0111的8位移碼是 01111001。

試題5
二進位制數-0011的8位原碼是 10000011。

試題6
二進位制數-0011的8位反碼是 11111100。

試題7
二進位制數-0011的8位補碼是 11111101。

試題8
二進位制數-0011的8位移碼是 01111101。

試題9
二進位制數-0010的8位原碼是 10000010。

試題10
二進位制數-0010的8位反碼是 11111101。

試題11
二進位制數-0010的8位補碼是 11111110。

試題12
二進位制數-0010的8位移碼是 01111110。

試題13
二進位制數+0111的8位原碼是 00000111。

試題14
二進位制數+0111的8位反碼是 00000111。

試題15
二進位制數+0111的8位補碼是 00000111。

試題16
二進位制數+0111的8位移碼是 10000111。

試題17
二進位制數+0011的8位原碼是 00000011。

試題18
二進位制數+0011的8位反碼是 00000011。

試題19
二進位制數+0011的8位補碼是 00000011。

試題20
二進位制數+0011的8位移碼是 10000011。

試題21
二進位制數+0001的8位原碼是 00000001。

試題22
二進位制數+0001的8位反碼是 00000001。

試題23
二進位制數+0001的8位補碼是 00000001。

試題24
二進位制數+0001的8位移碼是 10000001。

試題25
對於機器碼10000011,若它是補碼,對應的二進位制數真值是 -1111101。

試題26
對於機器碼10000001,若它是補碼,對應的二進位制數真值是 -1111111。

試題27
對於機器碼00001111,若它是補碼,對應的二進位制數真值是 +0001111。

二.原碼、補碼、反碼和移碼總結

1.原碼錶示法

a.一個數的原碼錶示由符號位直接後跟數值位構成,0為正號,1為負號。原碼錶示法中,正數和負數的編碼表示僅符號位不同。
b.整數的符號位與數值用逗號分隔,小數的符號位與數值用句號分隔。
c.原碼0有兩種表示形式:
  [+0]=000...0     [-0]=100...0。

2.補碼錶示法

a.對於正數,符號位取0,其餘各位與真值各位相對應;對於負數,符號位取1,其餘各位由真值加“各位取反,末位加1”得到。
b.根據補碼[Xt]補求[-Xt]補的方法是對[Xt]補“各位取反,末位加1”。

3.反碼錶示法

對於正數,反碼與原碼相同;對於負數,反碼就是在相應的補碼錶示中在末位減1。

4.移碼錶示法

a.在補碼的基礎上符號位取反。
b.移碼0的真值為-2^(n-1)。即[-2^(n-1)]移=00……0.零的移碼錶示是唯一的。

5.

 正數的原碼、補碼和反碼相同,移碼在補碼的基礎上符號位取反;
 負數的原碼符號位取1,其餘與真值相同;反碼在原碼的基礎上,符號位不變,其餘位求反;補碼在反碼的基礎上末位加1,移碼在補碼的基礎上符號位取反。

測手速: