【发布时间】:2015-06-09 02:34:52
【问题描述】:
我有一个视频游戏数据库,并将视频游戏项目存储在 varbinary(3792) 列中。我正在尝试制作一个程序来编辑和创建 32 长度的十六进制字符串形式的项目。创建项目相当容易,因为我知道十六进制字符串中的每个位置在项目属性方面代表什么但是我的问题是采用十六进制字符串并从中派生项目属性,因为某些属性共享相同的位置在十六进制字符串中..
考虑以下十六进制字符串:
索引:012345... 十六进制:0000120B837A00000010000000000000
我的问题是我有 3 个不同的属性:等级、运气和技能。
Luck 是一个布尔值,在位置 3 上加 4,否则为 0。
Skill 是一个布尔值,在位置 2 上加 8,否则为 0。
Level 是一个 int,使用位置 2 和 3。每次加 8。
示例位置 2,3 可能是:FC
=> 15 级(8*15 = 120 到 2,3 位)+ 技能(8 到 2 位)+ 运气(4 到 3 位)
所以我的问题是,给定一个十六进制字符串并查看位置 2,3,当多个属性使用相同位置时,我怎么可能知道包含哪些属性?我是十六进制/二进制系统的新手,所以如果我错过了一些信息,我深表歉意。我也试图在 C# 或 Java 中实现这一点。
【问题讨论】: