我在表'Chip'中的Binary(16)列的值为0xE1FC2E6F8674B7B9045C1104F9124C48,在另一个表中,我的列chip_i是具有相同值的整数类型(但在int中)= -116241336。
我正在使用SQL Server 2012。
如何在C#中将0xE1FC2E6F8674B7B9045C1104F9124C48转换为-116241336?
我试图这样转换它:
string hexString = "0xE1FC2E6F8674B7B9045C1104F9124C48";
byte[] hexByte = Encoding.ASCII.GetBytes(hexString);
var chip_i = BitConverter.ToInt32(hexByte, 0);
但结果是826636336
最佳答案
-116241336
只是将最后4个字节视为原始的Little-Endian整数; 0xF9124C48
。因此:仅使用最后4个字节。无需ASCII:
int chip_i = Convert.ToInt32(hexString.Substring(hexString.Length - 8, 8), 16);