KeyFC欢迎致辞,点击播放
资源、介绍、历史、Q群等新人必读
KeyFC 社区总索引
如果你找到这个笔记本,请把它邮寄给我们的回忆
KeyFC 漂流瓶传递活动 Since 2011
 

问问学VB的人

[ 5477 查看 / 10 回复 ]

比如一行
A = &H33
表示33是十六进制的。
&O22表示22是八进制的。
那么,二进制是用什么字母的呢……

谢谢。
分享 转发
個人站:Secret Nest
TOP

回复:问问学VB的人

GG了一下,看来没有



VB中的进制转换是怎样的?
答:用函数Oct()将十进制位数转换为八进制,用Hex()将十进制位数转换为十六进制,不过值得注意的是转换后数字型变为字符型。如果是一个变量我们可以用如下代码完成十进制向其他进制转换的目的。
    dim ANumaslong
    ANum=&O10′&O是八进制的表示符号ANum自行转换为8。
    ANum=&HA′&H是十六进制的表示符号ANum自行转换为10。
    如果我们有一个字符变量Astring为八进制的或十六进制的,用ANum=″&O″+Astring和ANum=″&H″+Astring能将它转换为十进制。
    VB中我没有找到二进制的转换函数,用如下代码可以实现十进制到二进制的转换。
    OptionExplicit
    Private Function TenturnTwo(ByValvarNumAsLong) 
    Dim returnStringAsString,ModNumAsInteger
    Do WhilevarNum>0
    ModNum=varNumMod2
    varNum=varNum\2
    returnString=Trim(Str(ModNum))+returnString
    Loop
    TenturnTwo=returnString
    End Function
    Private Function TwoturnTen(ByValvarStringAsString)
    DimSLenAsLong,I As Long,returnNumAsLong
    SLen=Len(varString)
    ForI=0ToSLen-1
    returnNum=returnNum+Val(Mid(varString,I+1,1))*(2^(SLen-I-1))
    Next
    TwoturnTen=returnNum
    End Function
TOP

回复:问问学VB的人

Visual Basic 语言规范 

2.4.2 整数请参见
布尔值 | 浮点数 | 字符串 | 字符 | 日期 | Nothing | 文本 | Integer 数据类型(Visual Basic 语言参考)
整数可以是十进制(以 10 为基)、十六进制(以 16 为基)或八进制(以 8 为基)。十进制整数是一个由十进制数字组成的字符串。十六进制文本是 &H 后跟一个由十六进制数字(0-9、A-F)组成的字符串。八进制文本是 &O 后跟一个由八进制数字 (0-7) 组成的字符串。十进制文本直接表示整数的十进制值,而八进制和十六进制文本则表示整数的二进制值(因此,&H8000S 为 -32768,而不是溢出异常)。

文本的类型由其值或后面的类型字符决定。如果未指定类型字符,则 Integer 类型范围内的值被视为 Integer 类型;Integer 范围外的值被视为 Long。如果整数的类型与保存该整数所需的大小不一致,则将发生编译时错误。

IntegerLiteral ::= IntegralLiteralValue [ IntegralTypeCharacter ](整数 ::= 整数值 [ 整型字符 ])

IntegralLiteralValue ::= IntLiteral | HexLiteral | OctalLiteral(整数值 ::= 十进制整数 | 十六进制整数 | 八进制整数)

IntegralTypeCharacter ::=(整型字符 ::=)
  ShortCharacter(短整数字符)|
  IntegerCharacter(整数字符)|
  LongCharacter(长整数字符)|
  IntegerTypeCharacter(Integer 类型字符)|
  LongTypeCharacter(Long 类型字符)

ShortCharacter ::= S(短整数字符 ::= S)

IntegerCharacter ::= I(整数字符 ::= I)

LongCharacter ::= L(长整数字符 ::= L)

IntLiteral ::= Digit+(十进制整数 ::= 数字+)

HexLiteral ::= & H HexDigit+(十六进制整数 ::= & H 十六进制数字+)

OctalLiteral ::= & O OctalDigit+(八进制整数 ::= & O 八进制数字+)

Digit(数字)::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

HexDigit(十六进制数字)::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F

OctalDigit(八进制数字)::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7



好像没二进制-________________-b

或者看看Decimal.GetBits 方法……

PS:某蛋要做什么?
AJI,舰狗
TOP

回复:问问学VB的人

反正2进和16进可以简易互换的呀
我为亡者而歌,是希望千年以后,有人能为我唱起同样的歌。
                            ——死者代言人,
                                Solitarius
TOP

回复:问问学VB的人

楼上正解,没有二进制的直接表示法,因为十六进制其实是一样的。
飛べない翼に、意味はあるんでしょうか?
TOP

回复:问问学VB的人

Convert.ToString 方法 (Int32, Int32)  [C#]请参见
Convert 类 | Convert 成员 | System 命名空间 | Convert.ToString 重载列表 | Convert 成员(Visual J# 语法) | C++ 托管扩展编程
要求
平台: Windows 98, Windows NT 4.0, Windows ME, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 系列, .NET Framework 精简版 - Windows CE .NET
语言
C#

C++

JScript

Visual Basic

全部显示
将 32 位有符号整数的值以指定的基数转换为它的等效 String 表示形式。

[Visual Basic]
Overloads Public Shared Function ToString( _
  ByVal value As Integer, _
  ByVal toBase As Integer _
) As String

[C#]
public static string ToString(
  int value,
  int toBase
);

[C++]
public: static String* ToString(
  int value,
  int toBase
);

[JScript]
public static function ToString(
  value : int,
  toBase : int
) : String;

参数
value
一个 32 位的有符号整数。
toBase
返回值的基数,必须是 2、8、10 或 16。
返回值
以 toBase 为基数的 value 的 String 表示形式。

异常
异常类型 条件
ArgumentException toBase 不是 2、8、10 或 16。

要求
平台: Windows 98, Windows NT 4.0, Windows ME, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 系列, .NET Framework 精简版 - Windows CE .NET

请参见
Convert 类 | Convert 成员 | System 命名空间 | Convert.ToString 重载列表 | Convert 成员(Visual J# 语法) | C++ 托管扩展编程


--------------------------------------------------------------------------------

顶一下这个吧………………今天MDK问某类似的问题就想到似乎这个还没算结贴……

另外还可参考这个……http://msdn.microsoft.com/library/CHS/cpref/html/frlrfSystemIFormatProviderClassTopic.asp
AJI,舰狗
TOP

回复:问问学VB的人

I know nothing about VB :(, and i am a software engineering student...
TOP

回复:问问学VB的人

我是看过汇编后自己写的二进制转换模块~~
………………
TOP

回复:问问学VB的人

谢谢各位,不过问题貌似没有解决好……
個人站:Secret Nest
TOP

回复:问问学VB的人

十六进制Hex  是&H
八进制octal 是&O
二进制binary 所以大概是&B吧
http://newphoto.1t1t.com/usr/4f/117001/1129268284_0.jpg
TOP