【问题标题】:How to determine different bit values given an integer value?如何确定给定整数值的不同位值?
【发布时间】:2015-12-20 04:26:16
【问题描述】:

我有一个 SQL 字段(整数类型),在这个例子中,它的值是“1024”。

在查看我的 DB 架构文档时,可以这样解析该字段:

“位 0 表示默认值” “位 1 表示位 0 的对面” “位 2 表示已验证” “位 3 表示重复” “位 4 表示手动” ...

它一直持续到第 21 位。

我不知道 Bit 的含义或它与 Integer 值的关系。我什至不确定如何用谷歌搜索这个(如果有意义的话),所以我希望 SO 可以提供帮助(或者帮助我使用谷歌搜索的措辞)。

谢谢。

(添加 SQL-Server 作为标签,但不确定它是否与此处相关)

【问题讨论】:

  • 是否可以设置超过 1 位?

标签: sql-server integer byte bit


【解决方案1】:

这听起来像是一个位域。阅读这些...

https://en.wikipedia.org/wiki/Bit_field

https://en.wikipedia.org/wiki/Flag_field

数字以二进制形式表示为 0 和 1(或位),例如00000100. 每个位置都有不同的含义,例如对于第一个位,它是 0,因此例如表示默认。

1024 作为二进制是 10000000000。

【讨论】:

    【解决方案2】:

    感谢@VR46 和@Quantumplate,我现在了解它的工作原理。字段中的值是一个整数,当转换为二进制(使用选择的语言)时,会变成类似: 010001000010 - 从右数起,每个数字代表一个“位”,对应于“查找值”文档。所以可以将多个 Bits 设置为 1。

    谢谢大家。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-27
      • 1970-01-01
      • 1970-01-01
      • 2023-02-07
      • 2019-05-27
      • 2010-11-07
      • 1970-01-01
      相关资源
      最近更新 更多