0 sql-server bit-manipulation bit
我有varbinary值,我想提取第0个字节的前3位,值为0x4D7920546537420537472696E67.
谢谢,
这从varbinary
值的第一个字节中提取3位:
select CONVERT(tinyint,0x7) & SUBSTRING(0x4D79205465737420537472696E67,1,1)
Run Code Online (Sandbox Code Playgroud)
逻辑是在AND(&
)的左侧,我们有一个设置了3位的字节.在右侧,我们从中提取单个字节varbinary
(SUBSTRING
基于1而不是基于0,因此这是第一个字节).
要从第3个字节中提取最后5位,我们将:
select CONVERT(tinyint,0xF8) & SUBSTRING(0x4D79205465737420537472696E67,3,1)
Run Code Online (Sandbox Code Playgroud)