關於十進制數 轉換為byte數據類型的問題


十進制 轉為byte類型:
方式一:
例一: 1234 → -46‬

① 1234轉換為二進制為: 100 1101 0010(正數,原反補相同)

② 二進制轉為 byte數據類型 : 只保留后八位
    1101 0010(補碼,首位 為1 代表負數)

③ 轉反碼(負數補碼轉反碼需要-1) : 1101 0001

④ 轉為原碼(負數轉為原碼 除符號位 其余取反):
    1010 1110(其中最高位1 為 - 010 1110轉十進制為46)

⑤ 得結果  -46

⑥ 驗證:

 

 

 

 

 


 

 

 


例二: -1234 → 46

① -1234轉換為二進制為: 1111 1011 0010 1110(此處為補碼 1111 1111 1111 1111 1111 1011 0010 1110‬ 偷個懶)

② 二進制轉為 byte數據類型 : 只保留后八位
    0010 1110(首位 為0 代表正數  正數,原反補相同)

③ 0010 1110(轉十進制為46)

④ 得結果  46


方式二:
權值法:
直接對二進制數 從末尾開始每一個數乘以2的n次冪,n從0開始,
(例:0010 1001權值法<1*2^0+0*2^1+0*2^2+1*2^3+0*2^4+1*2^5+0*2^6+0*2^7>所得的結果為41 )

例一:2345 → 41
1001 0010 1001
① 2345轉換為二進制為: 1001 0010 1001(正數,原反補相同)

② 二進制轉為 byte數據類型 : 只保留后八位
    0010 1001(補碼,首位 為0 代表負正數 正數,原反補相同)

③ 為正數時,直接使用權值法 
1*2^0+0*2^1+0*2^2+1*2^3+0*2^4+1*2^5+0*2^6+0*2^7

④ 得結果  41

例二: -2345→  -41

① -2345轉換為二進制為: 1111 0110 1101 0111(此處為補碼1111 1111 1111 1111 1111 0110 1101 0111 偷個懶)

② 二進制轉為 byte數據類型 : 只保留后八位
    1101 0111(首位 為1代表負數)

③ 為負數時,直接使用權值法 其中最高位*-1
1*2^0+1*2^1+1*2^2+0*2^3+1*2^4+0*2^5+1*2^6+1*2^7*-1

④ 得結果  -41

⑤ 驗證

 

 

 

 

 

 

 注:計算器解釋相關解釋

        HEX :十六進制
        DEC:十進制
        OCT:八進制
        BIN:二進制,注意這里的二進制為二進制補碼形式

        輸入一個數,進制轉換會自動進行

        QWORD:四字,64位 DWORD:雙字,32位 WORD:字,16位 BYTE:字節,8位

 

以上僅個人拙見,有其他建議歡迎指出  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM