Visual Studio调试器 - 以二进制形式显示整数值

13

我正在使用Visual Studio 2017,需要查看整数变量的二进制表示。

如何在Visual Studio调试器中实现这一点?

Visual Studio Watch Window


2
它已经以二进制形式显示,十六进制是一种很好的紧凑表示。0 = 0000,1 = 0001,... E = 1110,F = 1111。所以这是01010000000000000000000000000000。或者将该值复制粘贴到计算器中,切换到程序员模式。应该有足够的数字来让您相信,您需要二进制表示法的次数比您想象的要少得多。 - Hans Passant
4个回答

18

例如在监视窗口中键入“var,b”:

输入图像说明


7
似乎它不起作用(Visual Studio 2019专业版)。 - Giacomo Pirinoli
1
@GiacomoPirinoli 奇怪,它在Visual Studio Community 2019中运行良好。 - MasterHD

5
根据Visual Studio调试器的文档

您可以使用格式说明符更改在Watch,Autos和Locals窗口中显示值的格式。

这里也需要注意关于调试引擎更新和兼容性的内容:

当Visual Studio本机调试器更改为新的调试引擎时,添加了一些新的格式说明符并删除了一些旧的说明符。在使用C++/CLI进行interop(混合本机和托管)调试时仍使用旧调试器。

虽然它提到可以应用于“Autos”和“Locals”窗口,但不清楚如何操作,因为这些窗口中的变量名称无法编辑。
可以在“Watch”和“Immediate”窗口中使用<variable>, <format>语法,例如:

enter image description here

此处是完整的格式说明符列表的直接链接。

3
显然这对C#代码不起作用.. :-( - BenHero

2
右键单击该值,会显示一个菜单列表,但只提供十六进制显示选项。如果想在监视窗口中显示具有二进制值的变量,建议编写转换函数: enter image description here 我的代码中使用的函数是:
public static string ToBinaryString(uint num)
    {
        return Convert.ToString(num, 2).PadLeft(32, '0');
    }

@Stepan Ivanenko,您能否与我们分享一下您那边的最新信息? - Jack Zhai

0
我写了一个扩展方法 Binary() ,然后使用监视窗口调用它以查看任何想要查看的变量。
public static class Extensions
{
    public static string Binary(this byte inputByte)
    {
        return $"{Convert.ToString(inputByte, toBase: 2).PadLeft(8, '0')}";
    }
}

在VSCode中展示它的操作截图(在Visual Studio中也应该可以使用):

VSCode screenshot showing Binary() extension method in action


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接