存在两个问题:
1、VB在计算Byte类型数的运算时,也是按Byte类型的位数来存放计算结果的,很显然,计算结果已经超出Byte的范围了;
2、计算结果不但已经超出Byte的范围,也超出Integer的范围了,所以DisNumber变量要定义为Long类型才行。 所以改为如下: Private Sub Form_Load() Dim DisNumber as Long '定义为Long型 Dim a As Byte Dim b As Byte a=&H80 b=&H0 DisNumber = a * 256& + b '把表达式中的最大数256设为Long型,VB就会按Long型存放计算结果了 TxtDisplay.Text = Format(DisNumber, "##0") End Sub 补充: 那就再转换一下: Private Sub Form_Load() Dim DisNumber As Long '定义为Long型 Dim a As Byte Dim b As Byte a = &HFF b = &H0 DisNumber = a * 256& + b '把表达式中的最大数256设为Long型,VB就会按Long型存放计算结果了 DisNumber = Val("&H" & Hex(DisNumber)) '转换为带符号整数(土法) TxtDisplay.Text = Format(DisNumber, "##0") End Sub