You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SQL Server中获取整数的第一个字节?附C#实现示例

在SQL Server中获取整数的第一个字节(对应C# BitConverter.GetBytes(x)[0])

要在SQL Server中实现和C#里BitConverter.GetBytes(x)[0]相同的效果,核心是理解C#默认返回小端字节序,也就是取整数的最低有效字节(二进制表示的最后8位)。以下是几种可行的实现方式:

方法1:位与运算(推荐)

利用位与& 0xFF保留整数的最后8位,直接得到对应字节的数值:

DECLARE @x INT = 383;
SELECT @x & 0xFF AS FirstByte;
-- 输出结果:127

原理:0xFF的二进制是11111111,和整数做与运算后,只会保留最低8位的数值,这和C#中取第一个字节的逻辑完全一致。

方法2:模运算

对256取余,因为一个字节的取值范围是0-255,模256的结果就是最低8位的数值:

DECLARE @x INT = 383;
SELECT @x % 256 AS FirstByte;
-- 输出结果:127

注意:如果处理负数,模运算的结果在SQL Server中会保留符号(比如-1 % 256得到-1),但C#中BitConverter.GetBytes(-1)[0]是255。这种情况下优先用位与运算,-1 & 0xFF会得到255,和C#结果一致。

方法3:二进制转换后截取

先把整数转为VARBINARY类型(SQL Server中整数转VARBINARY是小端字节序),再截取第一个字节并转换为整数:

DECLARE @x INT = 383;
SELECT CAST(SUBSTRING(CAST(@x AS VARBINARY(4)), 1, 1) AS INT) AS FirstByte;
-- 输出结果:127

这个方法更贴近C#中BitConverter的底层逻辑,直接操作二进制字节。

内容的提问来源于stack exchange,提问作者Aan Dahliansyah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 02:57:07