当前位置: 代码迷 >> C# >> C# 进制转换有关问题
  详细解决方案

C# 进制转换有关问题

热度:412   发布时间:2016-05-05 05:23:41.0
C# 进制转换问题!
C# 学习中遇到的问题,为了以后的应用。
就问题而言,理论上十六进制的11,12,13,取反加一,得到十六进制CA。
但使用C#中的进制转换,得到的是FFFFFFCA。
FFFFFFCA在科学计算器上是双字的结果,我只需要得到字节的结果就可以。

希望明白人士 给个提点,是我转换方法用得不对,还是其它的什么原因?

            
            int a, b, c, result;
            string s_result;            
            a = Convert.ToInt32("11", 16);
            b = Convert.ToInt32("12", 16);
            c = Convert.ToInt32("13", 16);

            result = ~(a + b + c) + 1;   //取反加1  结果 -54         
            s_result = result.ToString("X2");    //想得到字节方式的转换(CA),但出现的是双字的结果(FFFFFFCA)?! 

------解决思路----------------------
为什么是双字? 因为你用了 int 啊, 结果转为 byte 或 sbyte 就行.
------解决思路----------------------
你把他们都用int(四个字节)来表示当然会这样了
int a, b, c;
            string s_result;            
            a = Convert.ToInt32("11", 16);
            b = Convert.ToInt32("12", 16);
            c = Convert.ToInt32("13", 16);
 
            var result = (byte)(~(a + b + c) + 1);   //取反加1  结果
  相关解决方案