我在表'Chip'中有二进制(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
答案 0 :(得分:3)
-116241336
只是被视为原始小端整数的最后4个字节; 0xF9124C48
。所以:只使用的最后4个字节。不需要ASCII:
int chip_i = Convert.ToInt32(hexString.Substring(hexString.Length - 8, 8), 16);