背景:最近在做一個c#轉java的專案
c#的這個方法
BigInteger.Parse(string val, NumberStyles.HexNumber)
BigInteger.Parse("FFFFFFFFFFFEA070", NumberStyles.HexNumber)的結果是-90000
【使用注意:如果十六進制字串的前兩位的數等于或者大于0x80,那么Parse()方法會把第一位作為符號位,即把它存盤為負數-----來源于網上】
然后在java的這個方法
new BigInteger(String val, int radix)
new BigInteger("FFFFFFFFFFFEA070",16)的結果是18446744073709461616
兩個方法都是16進制轉10進制(我應該說的沒錯吧~),但是結果不一樣
如何將上面java的方法結果改成跟c#的結果一樣
可能表述不是很清楚,見諒.....
uj5u.com熱心網友回復:
java的byte是有符號型別(java就沒有無符號型別的資料),值域:-0128~127c#的byte是無符號型別數值,值域:0~255
解決辦法:
c#有個sbye是有符號的,采用sbye[]替換bye[],轉換問題得以解決。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/284790.html
標籤:C#
上一篇:C# PLC通信回傳值截取字符
