栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

T-SQL中的汉明重量/人口计数

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

T-SQL中的汉明重量/人口计数

您可以使用具有预先计算的汉明权重的助手表来获取较小的数字(例如字节),然后相应地拆分值,加入助手表并获得部分汉明权重之和作为该值的汉明权重:

-- define Hamming weight helper tableDECLARE @hwtally TABLE (byte tinyint, hw int);INSERT INTO @hwtally (byte, hw) VALUES (0, 0);INSERT INTO @hwtally (byte, hw) SELECt   1 - byte, 1 - hw FROM @hwtally;INSERT INTO @hwtally (byte, hw) SELECt   3 - byte, 2 - hw FROM @hwtally;INSERT INTO @hwtally (byte, hw) SELECt   7 - byte, 3 - hw FROM @hwtally;INSERT INTO @hwtally (byte, hw) SELECt  15 - byte, 4 - hw FROM @hwtally;INSERT INTO @hwtally (byte, hw) SELECt  31 - byte, 5 - hw FROM @hwtally;INSERT INTO @hwtally (byte, hw) SELECt  63 - byte, 6 - hw FROM @hwtally;INSERT INTO @hwtally (byte, hw) SELECt 127 - byte, 7 - hw FROM @hwtally;INSERT INTO @hwtally (byte, hw) SELECt 255 - byte, 8 - hw FROM @hwtally;-- calculateWITH split AS (  SELECt SUBSTRINg(@value, number, 1) AS byte  FROM master.dbo.spt_values  WHERe type = 'P' AND number BETWEEN 1 AND LEN(@value))SELECt  Value = @value,  HammingWeight = SUM(t.hw)FROM split s  INNER JOIN @hwtally t ON s.byte = t.byte


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/634660.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号