十进制转换成二八十六进制代码
- 格式:pdf
- 大小:61.86 KB
- 文档页数:3
常见二进制、八进制、十进制、十六进制的转换-扫盲
二进制是Binary,简写为B,二进制只有0和1两个值,计算方法是逢二进一。
比如01B+01B(其中B是Binary的首字母,即二进制的简写),结果就是10B,因为逢二进一,低位的1相加后得2就向高位进1;
八进制是Octal,简写为O,八进制是指有0~7这8个值的表示法,计算方法是逢8进1。
比如17O+23O=42O,因为逢8进一,低位的7+3=10,10在八进制就是12,加上原来高位的1+2,结果就是42O;
十进制是Decimal,简写为D,十进制即咱们日常使用的0~9。
咱们日常做的计算都是十进制的,计算方法是逢十进一,比如21D+11D=32D;
十六进制是Hexadecimal,简写为H,十六进制用数字0-9和字母a-f(或其大写A-F)表示0到15,计算方法是逢16进1,比如1DH+25H=42H,因为逢16进一,低位的D相当于十进制的13,而5即可以看成是十进制的5,相加得18,而18-16=2,因此低位的值为2,高位的值即1+2再加上进位1即得4,高位结果就是4,最后结果是42H;
其中计算机采用的是二进制作为基础,在此基础上拓展了八进制、十进制、十六进制等。
二、八、十及十六进制的表示及相互转换一、二进制二进制是一种使用0和1两个数字进行计数的系统。
在计算机科学和电子工程中,二进制被广泛应用。
二进制数值可以使用位(bit)来表示,每一位只能是0或1。
二进制数值可以通过加权法来转换为十进制数值。
二进制数值示例:1101101011110000二进制数值可以通过不断除以2并取余数的方法转换为十进制数值。
例如,将1101转换为十进制数值:1 * 2^3 + 1 * 2^2 + 0 * 2^1 + 1 * 2^0 = 13二、八进制八进制是一种使用0到7这八个数字进行计数的系统。
在计算机科学和电子工程中,八进制数值常用于表示一组二进制数值。
每三位二进制数值可以转换为一位八进制数值。
八进制数值示例:175273八进制数值可以通过将每一位二进制数值分组并转换为八进制数值来转换为十进制数值。
例如,将1101 1010转换为八进制数值:(110)₂ = (6)₈(101)₂ = (5)₈(010)₂ = (2)₈因此,1101 1010转换为八进制数值为6252。
三、十进制十进制是我们平常所使用的计数系统,使用0到9这十个数字进行计数。
十进制数值可以直接表示整数和小数。
十进制数值示例:123456789.25十进制数值可以通过加权法来转换为二进制或八进制数值。
例如,将4567转换为二进制数值:4 * 10^3 +5 * 10^2 +6 * 10^1 +7 * 10^0 = 1000 + 500 + 60 + 7 = 4567将4567转换为八进制数值:4567 / 8 = 570 (7)570 / 8 = 71 (2)71 / 8 = 8 (7)8 / 8 = 1 0因此,4567转换为二进制数值为1000111010111,转换为八进制数值为10727。
四、十六进制十六进制是一种使用0到9及A到F这十六个数字进行计数的系统。
在计算机科学和电子工程中,十六进制数值常用于表示二进制数值。
2,8,10,16进制之间的相互转换我们知道日常生活中存在很多进制,常见的有二进制(计算机中的进制常用0、1表示),十进制、八进制、十六进制、六十进制(如时间度分秒)、二十四进制(一天24小时)等。
接下来为了熟练掌握二、八、十、十六进制的相互转化。
我们先从各个进制转化为10进制,并了解各个进制表示数的方法,从最低位个位向高位计算开始:二进制(逢2进1)在计算机中,电路只有关闭和开启状态,为了表示这种状态就用数字0、1来表示;例如计数3次可以用0010表示用数字0、1表示,2进制换算方法:2进制数的第1位的权值为2的0次方,第2位的权值为2的1次方,第3位的权值为2的2次方……所以,在第N(N从0开始)位上,如果是是数X (X 大于等于0,并且X小于等于1,即:1)表示的大小为(X-1)* 2的N次方。
图1八进制(逢8进1)用数字0、1、2、3、4、5、6、78进制多位数字母需要换算,换算方法:8进制数的第1位的权值为8的0次方,第2位的权值为8的1次方,第3位的权值为8的2次方……所以,在第N(N从0开始)位上,如果是是数X (X 大于等于0,并且X小于等于7,)表示的大小为(X -1)* 8的N次方。
图2十六进制(逢16进1)用数字0、1、2、3、4、5、6、7、8、9、A(10)、B(11)、C(12)、D(13)、E(14)、F(15)16进制多位数字母需要换算,换算方法:16进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方……所以,在第N(N从0开始)位上,如果是是数X (X 大于等于0,并且X小于等于15,即:F)表示的大小为X * 16的N次方。
图310进制转化为其他进制只需要将该数用除法的形式进行逆运算,就能得到各个进制之间的关系:如10(10进制)转为2进制的方法:图4所以二进制的最终表示为:1010如果是转化为其他进制,如8进制的话,就以8为底数作除法;方法同上。
进位制转换目录进位制转换 (1)一:简述: (1)二:进制转换的理论 (4)1、二进制数、八进制、十六进制数转换为十进制数:用按权展开法 (4)2:十进制转化成R进制(除R取余法) (4)3:十六进制转化成二进制 (5)4:二进制转化成十六进制 (5)5:八进制转化成二进制 (5)6:二进制转化为八进制 (5)三:具体实现 (6)1:二进制转换成十进制 (6)2:十进制整理转换成二进制 (6)3:十进制小数转换成二进制小数 (7)4:十六进制转为二进制 (7)5:二进制数转为十六进制 (7)一:简述:一:简述:进位计数制:是人们利用符号来计数的方法。
一种进位计数制包含一组数码符号和两个基本因素。
(二进制B,Binary;八进制O原是字母O,Octal,避免与数字0混淆改用Q;十进制D,Decimal;十六进制H,Hexadecimal。
)(1)数码:用不同的数字符号来表示一种数制的数值,这些数字符号称为数码。
(2)基:数制所使用的数码个数称为基。
(3)权:某数制每一位所具有的值称为权。
表格1 BCD码(用四位权为8421—<即2^*次方>的二进制数来表示等值的一位十进制数)表格2制数的对应关系二:进制转换的理论1、二进制数、八进制、十六进制数转换为十进制数:用按权展开法把一个任意R进制数an an-1 ...a1a0 . a-1 a-2...a-m转换成十进制数,其十进制数值为每一位数字与其位权之积的和。
an×R n + an-1×R n-1 +…+ a1×R 1 + a0×R 0 + a-1 ×R-1+ a-2×R-2+ …+ a-m×R-m2:十进制转化成R进制(除R取余法)十进制数轮换成R进制数要分两个部分:①整数部分:除R取余数,直到商为0,得到的余数即为二进数各位的数码,余数从右到左排列(反序排列)。
②小数部分:乘R取整数,得到的整数即为二进数各位的数码,整数从左到右排列(顺序排列)。
VB十、八、十六、二进制互转大全用途:将十进制转化为二进制输入:Dec(十进制数)输入数据类型:Long输出:DEC_to_BIN(二进制数)输出数据类型:String输入的最大数为2147483647,输出最大数为1111111111111111111111111111111(31个1)Public DEC_to_BIN(Dec As Long) As StringDEC_to_BIN = ""Do While Dec > 0DEC_to_BIN = Dec Mod 2 & DEC_to_BINDec = Dec \ 2LoopEnd用途:将二进制转化为十进制输入:Bin(二进制数)输入数据类型:String输出:BIN_to_DEC(十进制数)输出数据类型:Long输入的最大数为1111111111111111111111111111111(31个1),输出最大数为2147483647Public BIN_to_DEC(ByVal Bin As String) As LongDim i As LongFor i = 1 To Len(Bin)BIN_to_DEC = BIN_to_DEC * 2 + Val(Mid(Bin, i, 1))Next iEnd用途:将十六进制转化为二进制输入:Hex(十六进制数)输入数据类型:String输出:HEX_to_BIN(二进制数)输出数据类型:String输入的最大数为2147483647个字符Public HEX_to_BIN(ByVal Hex As String) As String Dim i As LongDim B As StringHex = UCase(Hex)For i = 1 To Len(Hex)Select Case Mid(Hex, i, 1)Case "0": B = B & "0000"Case "1": B = B & "0001"Case "2": B = B & "0010"Case "3": B = B & "0011"Case "4": B = B & "0100"Case "5": B = B & "0101"Case "6": B = B & "0110"Case "7": B = B & "0111"Case "8": B = B & "1000"Case "9": B = B & "1001"Case "A": B = B & "1010"Case "B": B = B & "1011"Case "C": B = B & "1100"Case "D": B = B & "1101"Case "E": B = B & "1110"Case "F": B = B & "1111"End SelectNext iWhile Left(B, 1) = "0"B = Right(B, Len(B) - 1)WendHEX_to_BIN = BEnd用途:将二进制转化为十六进制输入:Bin(二进制数)输入数据类型:String输出:BIN_to_HEX(十六进制数)输出数据类型:String输入的最大数为2147483647个字符Public BIN_to_HEX(ByVal Bin As String) As String Dim i As LongDim H As StringIf Len(Bin) Mod 4 <> 0 ThenBin = String(4 - Len(Bin) Mod 4, "0") & BinEnd IfFor i = 1 To Len(Bin) Step 4Select Case Mid(Bin, i, 4)Case "0000": H = H & "0"Case "0001": H = H & "1"Case "0010": H = H & "2"Case "0011": H = H & "3"Case "0100": H = H & "4"Case "0101": H = H & "5"Case "0110": H = H & "6"Case "0111": H = H & "7"Case "1000": H = H & "8"Case "1001": H = H & "9"Case "1010": H = H & "A"Case "1011": H = H & "B"Case "1100": H = H & "C"Case "1101": H = H & "D"Case "1110": H = H & "E"Case "1111": H = H & "F"End SelectNext iWhile Left(H, 1) = "0"H = Right(H, Len(H) - 1)WendBIN_to_HEX = HEnd用途:将十六进制转化为十进制输入:Hex(十六进制数)输入数据类型:String输出:HEX_to_DEC(十进制数)输出数据类型:Long输入的最大数为7FFFFFFF,输出的最大数为2147483647 Public HEX_to_DEC(ByVal Hex As String) As Long Dim i As LongDim B As LongHex = UCase(Hex)For i = 1 To Len(Hex)Select Case Mid(Hex, Len(Hex) - i + 1, 1)Case "0": B = B + 16 ^ (i - 1) * 0Case "1": B = B + 16 ^ (i - 1) * 1Case "2": B = B + 16 ^ (i - 1) * 2Case "3": B = B + 16 ^ (i - 1) * 3Case "4": B = B + 16 ^ (i - 1) * 4Case "5": B = B + 16 ^ (i - 1) * 5Case "6": B = B + 16 ^ (i - 1) * 6Case "7": B = B + 16 ^ (i - 1) * 7Case "8": B = B + 16 ^ (i - 1) * 8Case "9": B = B + 16 ^ (i - 1) * 9Case "A": B = B + 16 ^ (i - 1) * 10Case "B": B = B + 16 ^ (i - 1) * 11Case "C": B = B + 16 ^ (i - 1) * 12Case "D": B = B + 16 ^ (i - 1) * 13Case "E": B = B + 16 ^ (i - 1) * 14Case "F": B = B + 16 ^ (i - 1) * 15End SelectNext iHEX_to_DEC = BEnd用途:将十进制转化为十六进制输入:Dec(十进制数)输入数据类型:Long输出:DEC_to_HEX(十六进制数)输出数据类型:String输入的最大数为2147483647,输出最大数为7FFFFFFF Public DEC_to_HEX(Dec As Long) As StringDim a As StringDEC_to_HEX = ""Do While Dec > 0a = CStr(Dec Mod 16)Select Case aCase "10": a = "A"Case "11": a = "B"Case "12": a = "C"Case "13": a = "D"Case "14": a = "E"Case "15": a = "F"End SelectDEC_to_HEX = a & DEC_to_HEXDec = Dec \ 16LoopEnd用途:将十进制转化为八进制输入:Dec(十进制数)输入数据类型:Long输出:DEC_to_OCT(八进制数)输出数据类型:String输入的最大数为2147483647,输出最大数为177****7777 Public DEC_to_OCT(Dec As Long) As StringDEC_to_OCT = ""Do While Dec > 0DEC_to_OCT = Dec Mod 8 & DEC_to_OCTDec = Dec \ 8LoopEnd用途:将八进制转化为十进制输入:Oct(八进制数)输入数据类型:String输出:OCT_to_DEC(十进制数)输出数据类型:Long输入的最大数为177****7777,输出的最大数为2147483647 Public OCT_to_DEC(ByVal Oct As String) As LongDim i As LongDim B As LongFor i = 1 To Len(Oct)Select Case Mid(Oct, Len(Oct) - i + 1, 1)Case "0": B = B + 8 ^ (i - 1) * 0Case "1": B = B + 8 ^ (i - 1) * 1Case "2": B = B + 8 ^ (i - 1) * 2Case "3": B = B + 8 ^ (i - 1) * 3Case "4": B = B + 8 ^ (i - 1) * 4Case "5": B = B + 8 ^ (i - 1) * 5Case "6": B = B + 8 ^ (i - 1) * 6Case "7": B = B + 8 ^ (i - 1) * 7End SelectNext iOCT_to_DEC = BEnd用途:将二进制转化为八进制输入:Bin(二进制数)输入数据类型:String输出:BIN_to_OCT(八进制数)输出数据类型:String输入的最大数为2147483647个字符Public BIN_to_OCT(ByVal Bin As String) As String Dim i As LongDim H As StringIf Len(Bin) Mod 3 <> 0 ThenBin = String(3 - Len(Bin) Mod 3, "0") & BinEnd IfFor i = 1 To Len(Bin) Step 3Select Case Mid(Bin, i, 3)Case "000": H = H & "0"Case "001": H = H & "1"Case "010": H = H & "2"Case "011": H = H & "3"Case "100": H = H & "4"Case "101": H = H & "5"Case "110": H = H & "6"Case "111": H = H & "7"End SelectNext iWhile Left(H, 1) = "0"H = Right(H, Len(H) - 1)WendBIN_to_OCT = HEnd用途:将八进制转化为二进制输入:Oct(八进制数)输入数据类型:String输出:OCT_to_BIN(二进制数)输出数据类型:String输入的最大数为2147483647个字符Public OCT_to_BIN(ByVal Oct As String) As String Dim i As LongDim B As StringFor i = 1 To Len(Oct)Select Case Mid(Oct, i, 1)Case "0": B = B & "000"Case "1": B = B & "001"Case "2": B = B & "010"Case "3": B = B & "011"Case "4": B = B & "100"Case "5": B = B & "101"Case "6": B = B & "110"Case "7": B = B & "111"End SelectNext iWhile Left(B, 1) = "0"B = Right(B, Len(B) - 1)WendOCT_to_BIN = BEnd用途:将八进制转化为十六进制输入:Oct(八进制数)输入数据类型:String输出:OCT_to_HEX(十六进制数)输出数据类型:String输入的最大数为2147483647个字符Public OCT_to_HEX(ByVal Oct As String) As String Dim Bin As StringBin = OCT_to_BIN(Oct)OCT_to_HEX = BIN_to_HEX(Bin)End用途:将十六进制转化为八进制输入:Hex(十六进制数)输入数据类型:String输出:HEX_to_OCT(八进制数)输出数据类型:String输入的最大数为2147483647个字符Public HEX_to_OCT(ByVal Hex As String) As String Dim Bin As StringHex = UCase(Hex)Bin = HEX_to_BIN(Hex)HEX_to_OCT = BIN_to_OCT(Bin)EndVB自带函数:十进制转八进制:Oct(num)十六进制转八进制:oct("&H" & num)十进制转十六进制:hex(num)八进制转十六进制:hex("&O" & num)十六进制转换为十进制Dim str As Stringstr = Text2.TextText10.Text = CLng("&H" & str)。
◆十进制转二进制:二进制是计算技术中广泛采用的一种数制。
二进制数据是用0和1两个数码来表示的数。
它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。
当前计算机系统使用的基本上是二进制系统。
用2辗转相除至结果为1将余数和最后的1从下向上倒序写就是结果例如302302/2 = 151 余0151/2 = 75 余175/2 = 37 余137/2 = 18 余118/2 = 9 余09/2 = 4 余14/2 = 2 余02/2 = 1 余0故二进制为100101110◆二进制转十进制从最后一位开始算,依次列为第0、1、2...位第n位的数(0或1)乘以2的n次方得到的结果相加就是答案例如:01101011.转十进制:第0位:1乘2的0次方=11乘2的1次方=20乘2的2次方=01乘2的3次方=80乘2的4次方=01乘2的5次方=321乘2的6次方=640乘2的7次方=0然后:1+2+0+8+0+32+64+0=107.二进制01101011=十进制107.好了,现在对二进制和十进制之间的换算有了初步的了解了吧,下面,我们就进一步深入了解二者之间的其他换算规律:二进制转十进制,十进制转二进制的算法一、二进制数转换成十进制数由二进制数转换成十进制数的基本做法是,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。
这种做法称为"按权相加"法。
二、十进制数转换为二进制数十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。
1. 十进制整数转换为二进制整数十进制整数转换为二进制整数采用"除2取余,逆序排列"法。
具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
VB编程序实现十进制数转换成2816进制数十进制数转换成任意进制数的通用算法如下:1.定义一个函数来实现十进制数转换成目标进制数的功能。
函数接收两个参数,一个是待转换的十进制数,另一个是目标进制数。
函数的返回值是转换后的结果。
2.在函数中,首先判断待转换的十进制数是否为0。
如果是0,则直接返回结果为"0",表示对应的目标进制中的0。
这是一个终止条件。
3.如果待转换的十进制数不为0,则进入下一步。
定义一个空字符串,用于存储转换后的结果。
4.利用循环来进行进制转换。
循环条件是待转换的十进制数不为0。
每一次循环都进行以下操作:-计算待转换的十进制数对目标进制的余数。
注意,由于2816是一个超过16的进制数,所以余数可能会大于9,需要根据对应的规则进行转换。
-将余数转换成对应的字符,添加到结果字符串的左边。
-更新待转换的十进制数为除以目标进制后的商。
5.循环结束后,结果字符串中存储的就是待转换的十进制数转换后的目标进制数。
下面是使用VB编程语言实现十进制数转换成2816进制数的代码示例:```vbImports SystemModule ProgramSub Main(args As String()Dim base2816Number As String =ConvertDecimalToBase(decimalNumber, 2816)Console.WriteLine("Decimal: " & decimalNumber)Console.WriteLine("Base 2816: " & base2816Number)End SubFunction ConvertDecimalToBase(decimalNumber As Integer, baseNumber As Integer) As StringIf decimalNumber = 0 ThenReturn "0"End IfDim result As String = ""While decimalNumber <> 0Dim remainder As Integer = decimalNumber Mod baseNumber Dim remainderChar As CharIf remainder > 9 ThenremainderChar = ChrW(remainder - 10 + AscW("A"))ElseremainderChar = ChrW(remainder + AscW("0"))End Ifresult = remainderChar & resultdecimalNumber \= baseNumberEnd WhileReturn resultEnd FunctionEnd Module```请注意,2816进制数可能不常见,因此可以自行修改示例代码中的目标进制数。
VB--十进制,八进制,十六进制,二进制相互转换大全1.用途:将十进制转化为二进制' 输入:Dec(十进制数)' 输入数据类型:Long' 输出:DEC_to_BIN(二进制数)' 输出数据类型:StringPublic Function DEC_to_BIN(Dec As Long) As StringDEC_to_BIN = ""Do While Dec > 0DEC_to_BIN = Dec Mod 2 & DEC_to_BINDec = Dec \ 2LoopEnd Function'2. 用途:将二进制转化为十进制' 输入:Bin(二进制数)' 输入数据类型:String' 输出:BIN_to_DEC(十进制数)' 输出数据类型:LongPublic Function BIN_to_DEC(ByVal Bin As String) As LongDim i As LongFor i = 1 To Len(Bin)BIN_to_DEC = BIN_to_DEC * 2 + Val(Mid(Bin, i, 1))Next iEnd Function' 3.用途:将十六进制转化为二进制' 输入:Hex(十六进制数)' 输入数据类型:String' 输出:HEX_to_BIN(二进制数)' 输出数据类型:StringPublic Function HEX_to_BIN(ByVal Hex As String) As String Dim i As LongDim B As StringHex = UCase(Hex)For i = 1 To Len(Hex)Select Case Mid(Hex, i, 1)Case "0": B = B & "0000"Case "1": B = B & "0001"Case "2": B = B & "0010"Case "3": B = B & "0011"Case "4": B = B & "0100"Case "5": B = B & "0101"Case "6": B = B & "0110"Case "7": B = B & "0111"Case "8": B = B & "1000"Case "9": B = B & "1001"Case "A": B = B & "1010"Case "B": B = B & "1011"Case "C": B = B & "1100"Case "D": B = B & "1101"Case "E": B = B & "1110"Case "F": B = B & "1111"End SelectNext iWhile Left(B, 1) = "0"B = Right(B, Len(B) - 1)WendHEX_to_BIN = BEnd Function' 4.用途:将二进制转化为十六进制' 输入:Bin(二进制数)' 输入数据类型:String' 输出:BIN_to_HEX(十六进制数)' 输出数据类型:StringPublic Function BIN_to_HEX(ByVal Bin As String) As String Dim i As LongDim H As StringIf Len(Bin) Mod 4 <> 0 ThenBin = String(4 - Len(Bin) Mod 4, "0") & Bin End IfFor i = 1 To Len(Bin) Step 4Select Case Mid(Bin, i, 4)Case "0000": H = H & "0"Case "0001": H = H & "1"Case "0010": H = H & "2"Case "0011": H = H & "3"Case "0100": H = H & "4"Case "0101": H = H & "5"Case "0110": H = H & "6"Case "0111": H = H & "7"Case "1000": H = H & "8"Case "1001": H = H & "9"Case "1010": H = H & "A"Case "1011": H = H & "B"Case "1100": H = H & "C"Case "1101": H = H & "D"Case "1110": H = H & "E"Case "1111": H = H & "F"End SelectNext iWhile Left(H, 1) = "0"H = Right(H, Len(H) - 1)WendBIN_to_HEX = HEnd Function'5. 用途:将十六进制转化为十进制' 输入:Hex(十六进制数)' 输入数据类型:String' 输出:HEX_to_DEC(十进制数)' 输出数据类型:LongPublic Function HEX_to_DEC(ByVal Hex As String) As Long Dim i As LongDim B As LongHex = UCase(Hex)For i = 1 To Len(Hex)Select Case Mid(Hex, Len(Hex) - i + 1, 1)Case "0": B = B + 16 ^ (i - 1) * 0Case "1": B = B + 16 ^ (i - 1) * 1Case "2": B = B + 16 ^ (i - 1) * 2Case "3": B = B + 16 ^ (i - 1) * 3Case "4": B = B + 16 ^ (i - 1) * 4Case "5": B = B + 16 ^ (i - 1) * 5 Case "6": B = B + 16 ^ (i - 1) * 6 Case "7": B = B + 16 ^ (i - 1) * 7 Case "8": B = B + 16 ^ (i - 1) * 8 Case "9": B = B + 16 ^ (i - 1) * 9 Case "A": B = B + 16 ^ (i - 1) * 10 Case "B": B = B + 16 ^ (i - 1) * 11 Case "C": B = B + 16 ^ (i - 1) * 12 Case "D": B = B + 16 ^ (i - 1) * 13 Case "E": B = B + 16 ^ (i - 1) * 14 Case "F": B = B + 16 ^ (i - 1) * 15 End SelectNext iHEX_to_DEC = BEnd Function' 6.用途:将十进制转化为十六进制' 输入:Dec(十进制数)' 输入数据类型:Long' 输出:DEC_to_HEX(十六进制数)' 输出数据类型:StringPublic Function DEC_to_HEX(Dec As Long) As String Dim a As StringDEC_to_HEX = ""Do While Dec > 0a = CStr(Dec Mod 16)Select Case aCase "10": a = "A"Case "11": a = "B"Case "12": a = "C"Case "13": a = "D"Case "14": a = "E"Case "15": a = "F"End SelectDEC_to_HEX = a & DEC_to_HEXDec = Dec \ 16LoopEnd Function'7. 用途:将十进制转化为八进制' 输入:Dec(十进制数)' 输入数据类型:Long' 输出:DEC_to_OCT(八进制数)' 输出数据类型:StringPublic Function DEC_to_OCT(Dec As Long) As String DEC_to_OCT = ""Do While Dec > 0DEC_to_OCT = Dec Mod 8 & DEC_to_OCTDec = Dec \ 8LoopEnd Function'8. 用途:将八进制转化为十进制' 输入:Oct(八进制数)' 输入数据类型:String' 输出:OCT_to_DEC(十进制数)' 输出数据类型:LongPublic Function OCT_to_DEC(ByVal Oct As String) As Long Dim i As LongDim B As LongFor i = 1 To Len(Oct)Select Case Mid(Oct, Len(Oct) - i + 1, 1)Case "0": B = B + 8 ^ (i - 1) * 0Case "1": B = B + 8 ^ (i - 1) * 1Case "2": B = B + 8 ^ (i - 1) * 2Case "3": B = B + 8 ^ (i - 1) * 3Case "4": B = B + 8 ^ (i - 1) * 4Case "5": B = B + 8 ^ (i - 1) * 5Case "6": B = B + 8 ^ (i - 1) * 6Case "7": B = B + 8 ^ (i - 1) * 7End SelectNext iOCT_to_DEC = BEnd Function' 9.用途:将二进制转化为八进制' 输入:Bin(二进制数)' 输入数据类型:String' 输出:BIN_to_OCT(八进制数)' 输出数据类型:StringPublic Function BIN_to_OCT(ByVal Bin As String) As String Dim i As LongDim H As StringIf Len(Bin) Mod 3 <> 0 ThenBin = String(3 - Len(Bin) Mod 3, "0") & BinEnd IfFor i = 1 To Len(Bin) Step 3Select Case Mid(Bin, i, 3)Case "000": H = H & "0"Case "001": H = H & "1"Case "010": H = H & "2"Case "011": H = H & "3"Case "100": H = H & "4"Case "101": H = H & "5"Case "110": H = H & "6"Case "111": H = H & "7"End SelectNext iWhile Left(H, 1) = "0"H = Right(H, Len(H) - 1)WendBIN_to_OCT = HEnd Function'10. 用途:将八进制转化为二进制' 输入:Oct(八进制数)' 输入数据类型:String' 输出:OCT_to_BIN(二进制数)' 输出数据类型:StringPublic Function OCT_to_BIN(ByVal Oct As String) As String Dim i As LongDim B As StringFor i = 1 To Len(Oct)Select Case Mid(Oct, i, 1)Case "0": B = B & "000"Case "1": B = B & "001"Case "2": B = B & "010"Case "3": B = B & "011"Case "4": B = B & "100"Case "5": B = B & "101"Case "6": B = B & "110"Case "7": B = B & "111"End SelectNext iWhile Left(B, 1) = "0"B = Right(B, Len(B) - 1)WendOCT_to_BIN = BEnd Function'11. 用途:将八进制转化为十六进制' 输入:Oct(八进制数)' 输入数据类型:String' 输出:OCT_to_HEX(十六进制数)' 输出数据类型:StringPublic Function OCT_to_HEX(ByVal Oct As String) As String Dim Bin As StringBin = OCT_to_BIN(Oct)OCT_to_HEX = BIN_to_HEX(Bin)End Function'12. 用途:将十六进制转化为八进制' 输入:Hex(十六进制数)' 输入数据类型:String' 输出:HEX_to_OCT(八进制数)' 输出数据类型:StringPublic Function HEX_to_OCT(ByVal Hex As String) As String Dim Bin As StringHex = UCase(Hex)Bin = HEX_to_BIN(Hex)HEX_to_OCT = BIN_to_OCT(Bin)End FunctionVB自带函数:十进制转八进制:Oct(num)十六进制转八进制:oct("&H" & num)十进制转十六进制:hex(num)八进制转十六进制:hex("&O" & num)十六进制转换为十进制Dim str As Stringstr = Text2.TextText10.Text = CLng("&H" & str)。
VB编程序实现十进制数转换成2816进制数在VB编程语言中,可以使用不同的函数和方法来实现十进制数转换成其他进制数。
下面是一个示例程序,它可以将用户输入的十进制数转换为2、8和16进制数,并将结果输出。
```vbModule Module1Sub MainDim input As IntegerConsole.Write("请输入一个十进制数:")input = Convert.ToInt32(Console.ReadLine()Dim binary As String = DecimalToBinary(input)Dim octal As String = DecimalToOctal(input)Dim hexadecimal As String = DecimalToHexadecimal(input)Console.WriteLine("二进制数:" + binary)Console.WriteLine("八进制数:" + octal)Console.WriteLine("十六进制数:" + hexadecimal)Console.ReadLineEnd SubFunction DecimalToBinary(ByVal decimalNumber As Integer) As StringDim binaryNumber As String = ""While decimalNumber > 0Dim remainder As Integer = decimalNumber Mod 2binaryNumber = remainder.ToString( + binaryNumberdecimalNumber \= 2End WhileReturn binaryNumberEnd FunctionFunction DecimalToOctal(ByVal decimalNumber As Integer) As StringDim octalNumber As String = ""While decimalNumber > 0Dim remainder As Integer = decimalNumber Mod 8octalNumber = remainder.ToString( + octalNumberdecimalNumber \= 8End WhileReturn octalNumberEnd FunctionFunction DecimalToHexadecimal(ByVal decimalNumber As Integer) As StringDim hexadecimalNumber As String = ""While decimalNumber > 0Dim remainder As Integer = decimalNumber Mod 16hexadecimalNumber = Hex(remainder).ToString( + hexadecimalNumberdecimalNumber \= 16End WhileReturn hexadecimalNumberEnd FunctionEnd Module```在上述示例程序中,首先从用户输入中获取一个十进制数。
C#⼗进制与⼆进制、⼗六进制、⼋进制之间的转换1.⼗进制转⼆进制将⼗进制数不断地除2,将所有余数倒叙填写,即可得到所需⼆进制数据。
public static string DecimalToBinary(int vDecimal){/* 将⼗进制的数 vDecimal 不断地除 2,取余数* 然后将余数倒序填写*/List<int> vYuShu = new List<int>(); // 除 2 过程中产⽣的余数集int vTempValue= vDecimal; // 除 2 过程中产⽣的商数for (; ; ){int tempYS = vTempValue % 2;vYuShu.Add(tempYS); // 记住余数vTempValue = vTempValue / 2;if (vTempValue == 0) // 商数等于0时,结束运算break;}// 倒序输出string strBinary = "";for (int i = vYuShu.Count - 1; i >= 0; i--){strBinary += vYuShu[i];}Console.WriteLine("Input decimal value:{0}, output binary value:{1}.", vDecimal, strBinary);return strBinary;}2. ⼆进制转⼗进制将⼆进制各位上的值(0或1)乘2的(n-1)次⽅,将每位结果相加。
其中,n表⽰⼆进制中从右向左的位数(从1开始计);public static int BinaryToDecimal(string vBinary){// ⾸先判断是否满⾜输⼊要求int[] vInput = new int[vBinary.Length];for (int i = 0; i < vBinary.Length; i++){var tempNum = vBinary[i].ToString();if (tempNum == "0"){vInput[i] = 0;}else if (tempNum == "1"){vInput[i] = 1;}else{throw new Exception("输⼊参数不正确,⼆进制数应仅由:0和1组成");}}/** 依次乘2的(n-1)次⽅,再求和*/int vDecimal = 0;for (int i = 1; i <= vInput.Length; i++){vDecimal += (int)(Math.Pow(2, i - 1) * vInput[vInput.Length-i]);}Console.WriteLine("Input binary value:{0}, output decimal value:{1}.", vBinary, vDecimal);return vDecimal;}3. ⾃带的转换⽅式C#.Net⾃带的进制转换⽅式:int vDecimal = 99;// 【10】→【2】string vBinary = Convert.ToString(vDecimal, 2);Console.WriteLine("⼗进制数:{0},转换成⼆进制:{1}", vDecimal, vBinary);// 【2】→【10】int tempDecimal = Convert.ToInt32(vBinary, 2);Console.WriteLine("⼆进制数:{0},转换成⼗进制:{1}", vBinary, tempDecimal);4. ⼗进制 <=> ⼗六进制int vDecimal = 127;// 【10】→【16】string vStrHex = "0x" + Convert.ToString(vDecimal, 16);Console.WriteLine("⼗进制数:{0},转换成⼗六进制:{1}", vDecimal, vStrHex);// 【16】→【10】int tempDecimal = Convert.ToInt32(vStrHex, 16);Console.WriteLine("⼗六进制数:{0},转换成⼗进制:{1}", vStrHex, tempDecimal);或者可以:5. ⼗进制 <=> ⼋进制6. 其它转换7. 有符号的数⼆进制转换对于有正负号的数据,在转换时与上诉略有不同。