/// <summary> /// 求一個16位數數的補碼 /// </summary> /// <param name="OriginalCode">傳入一個Int16整型</param> /// <returns></returns> public static int ConvertComplementCode(int OriginalCode) { int a = short.MaxValue; int b = short.MinValue; int c = a - b; int d = 0; if (OriginalCode > 0) { d = -(c - OriginalCode + 1); } else { d = c + OriginalCode + 1; } return d; } /// <summary> /// 求一個32位數的補碼 /// </summary> /// <param name="OriginalCode">傳入一個Int32整型</param> /// <returns></returns> public static long ConvertComplementCode(long OriginalCode) { long a = int.MaxValue; long b = int.MinValue; long c = a - b; long d = 0; if (OriginalCode > 0) { d = -(c - OriginalCode + 1); } else { d = c + OriginalCode + 1; } return d; }
