【发布时间】:2018-09-27 05:41:02
【问题描述】:
我想就 Visual Basic 2010 中的二进制减法寻求一些帮助。感谢@video.baba,我的代码运行良好
Dim BinaryResult As Integer = Convert.ToInt32(TextBox1.Text, 2) + Convert.ToInt32(TextBox2.Text, 2)
Textbox3.Text = BinaryResult.ToString
最终,问题是这样的。如果第一个输入低于第二个输入,这给我一个否定的结果,但答案太远了
例子:
0000 - 1111 = 11111111111111111111111111111001
必须
0000 - 1111 = -01111
任何帮助将不胜感激。谢谢
【问题讨论】:
-
-01111不是有效的二进制文件。请问你为什么期望这个输出?目前得到的是正确的,见:dotnetfiddle.net/BGsDry -
发生的事情是当你的无符号整数“变为负数”时,它被提升为有符号整数,它使用最左边的位来表示负数和正数(1 = neg,0 = pos)。 If your still confused, this should explain it
-
@VisualVincent 它必须是 0000 - 1111 = -01111 正确,而不是 1111111111111111111111111111001 。寻求帮助,如果什么是最好的代码而不是 vbnet 中的二进制减法
-
你查看我的链接了吗?你得到的是正确的。
-01111不是有效的二进制数,因为-不存在二进制。就像 doom87er 解释的那样,最左边的位(左起第一个)表示数字是正数还是负数。那个长字符串是你的计算机如何表示一个负数,所以这是真正正确的。 -
好的,谢谢,现在我明白了 :) 顺便说一句,还有其他用于二进制减法的代码吗?谢谢
标签: vb.net binary subtraction