2010-01-22 114 views
2

在Visual Studio中,通过它的本地特性或插件,在调试器窗口中显示一个整数/长/字符变量作为位数组有没有办法?例如,不是看到5或0x5,我希望看到101.作为一项额外功能,我希望看到它们用正确数量的零填充,以便字段的总宽度等于类型的实际数量。在Visual Studio中将整数显示为位数组的方式

(我知道我可以用calc.exe进行转换,但是在调试位操作时很痛苦)。

回答

2

这里是格式说明符的完整列表,但没有位。 http://msdn.microsoft.com/en-us/library/75w45ekt(VS.80).aspx

顺便说一下,它转换十六进制(x格式)或八进制(o格式)很简单。只需在眼前摆放八进制或十六进制符号的简单表格即可。在一天之后,您将直接转换为 5A-> 1011010

+0

事实上,我发现它更容易使用十六进制;在0xA6D0中找到第7位要比在1010011011010000中容易得多。 – MSalters 2010-01-22 12:10:54

+0

@MSalters然后尝试0xA6D0&(1 << 6) - 它将提取出位#7 – Dewfy 2010-01-22 13:33:21

+0

转换一个值并不难,但每年几次我需要这样做,我觉得想一个值的正确和最快的一系列位操作来达到某个结果是相当麻烦的。因此,我写下开始和结束的情况,并考虑从那里采取的步骤。另外,我发现比如十六进制中的二进制位移很容易。也许我只是缺少一些技巧来做到这一点? – Roel 2010-01-22 14:07:37

0

如果您使用托管C++,则可以像编写char *的内置函数一样编写简单的Visualizer(将字符串视为html,xml或原始字符串)。

太糟糕了,它不支持原生(我想这是出于安全原因)

+0

实际上,也可以为非托管类型编写调试器可视化器(我为一些boost类编写了一些),但是(尽管我还没有尝试过),就我所知,将替换当前显示的值。另外我不知道,对于非托管代码可视化器,可以将它们写入内置类型。我可以试试。谢谢。 – Roel 2010-01-22 14:02:15

相关问题