问题描述
在VB中如何构造一个16位的负整数?
解决方案
解决方案二:
DimaAsString=(-1*(Int((9*Rnd())+1))).ToStringDimiAsInteger=0DoWhilei<3DimbAsString=Rnd()IfLen(b)>7Thena=a&b.Substring(2,5)i=i+1EndIfLoopDimcAsLong=aMsgBox("个是一个随机的16位负数:"&c)
解决方案三:
Short数据类型保存16位(2字节)有符号整数,值的范围为-32,768到32,767。
解决方案四:
谢谢指正,不过按照你的意思short这个类型不能存16位数呀,报错为溢出,请老大解释,谢谢,不知我这样理解你的意思对否按照你的意思,代码改成PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.ClickDimaAsString=(-1*(Int((9*Rnd())+1))).ToStringDimiAsInteger=0DoWhilei<3DimbAsString=Rnd()IfLen(b)>7Thena=a&b.Substring(2,5)i=i+1EndIfLoopDimcAsshort=a'这里报错为溢出MsgBox("个是一个随机的16位负数:"&c)EndSub
解决方案五:
你直接定义一个UShort,你就当他是负数不久可以了,不保存符号。如果用Short就只有15位。
解决方案六:
该回复于2008-05-09 11:18:39被版主删除
解决方案七:
我自己也写了一段程序,不过经常出现-1~-255不能正常译码,显示为-1的现象,但-255~-32767段倒是没有问题我是用VB6做的
解决方案八:
学习了~~~
解决方案九:
楼主问的是数值大小吗?还是数据类型?内置类型包括有符号,有无符号有符号的,表示的范围中,一半是正数,一半是负数因此,最大值,会显得小如果,只是要求数值的大小,可以使用其他类型然后再处理的时候,检验大小,不知道楼主说的是16个数字,还是16个二进制位?
解决方案十:
学习、
解决方案十一:
可能我描述的不大清楚,我用VB6自己做了的解码函数,我的这个函数是用于串口通讯上的,将串口传送过来的数据帧中的两个byte合并成一个有符号整数,但是解码函数经常出现在-1~-255之间的数解码成-1,超过-255的数解码正确。因此在这里向各位大侠请教一下
解决方案十二:
楼主,你可能理解错数值的表示了你是把原来一个字节的2数何在一起了但同时,他们的表示位也变了先说下,一个Byte表示的数是0~255共256个数有符号的是-128~127那么2个Byte就是256×256个数即65536但是,你要处理的并不是16位个数,而是,前8位和后8位的那么如果前8位为最小值1的话16个位则是0000000100000000正好是256,也就是说,如果你要处理第一8位数值都大于256的换句话说,后8位都是小于256,或者倍数的(在某个区间,因为,还有256前端分隔)建议楼组重新检查一下函数,如果很难处理2个字节数据,还是单独处理比较好