电脑自带的计算器就能用。。
开始-程序-附件-计算器
然后在查看那把标准型改为科学型
默认的进制是十进制的。。你随便输入数字如1200 然后下面点选16进制它就自动显示为4B0了 共有四种进制可选
方法如下:
DA转换器就是将数字量转换为模拟量的电路。主要用于数据传输系统、自动测试设备、医疗信息处理、电视信号的数字化、图像信号的处理和识别、数字通信和语音信息处理等。
按数字量输入方式:并行输入和串行输入DA转换器。
按模拟量输出方式:电流输出和电压输出DA转换器。
按DA转换的分辩率:低分辩率、中分辩率和高分辩率DA转换器。
4个2进制位为一个16进制数,2进制1111为16进制F,2进制中千位的1=8,百位的1=4,十位的1=2,个位的1=1,将各个位的数作相应转换再相加,的到的数就是10进制数0-15,可轻松转换成16进制.如01011100,可看成是两组2进制数0101和1100,则这个数就是16进制的5C.
10转16:
100以内一点的10转16心算比较快,复杂的用“计算器”算了.10转16用传统的计算方式可以了,就是大于15小于256的10进制数除以16为的值为十位的16进制数,其余数为个位的16进制数,没余数则个位为0.如61的16进制是3D,61除以16得3余13,3作十位数,13转成D为各位数.
16转10:
用相反的道理,将十位数乘以16加上个位数.如5A,将5乘以16得80,加上A的10进制10,结果是90.
请参考
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY yimaqi IS
PORT (ain:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
dout:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));
END yimaqi;
ARCHITECTURE one OF yimaqi IS
BEGIN
PROCESS(ain)
BEGIN
CASE ain IS
WHEN "0000"=dout="0111111";
WHEN "0001"=dout="0000110";
WHEN "0010"=dout="1011011";
WHEN "0011"=dout="1001111";
WHEN "0100"=dout="1100110";
WHEN "0101"=dout="1101101";
WHEN "0110"=dout="1111101";
WHEN "0111"=dout="0000111";
WHEN "1000"=dout="1111111";
WHEN "1001"=dout="1101111";
WHEN "1010"=dout="0111001";
WHEN "1011"=dout="1011110";
WHEN "1100"=dout="1011100";
WHEN "1101"=dout="1010100";
when "1110"=dout="1111011";
WHEN OTHERS=dout="0000000";
END CASE;
END PROCESS; END one;
译码器显示程序,参考一下
'在窗体上放1个文本框,TEXT设置为0,四个OptionButton,Caption分别设置为 10、2、16、8进制
Dim Flag As Integer '记录当前文本框数值的进制,可能为:0--十进制;2——二进制;8——八进制;16——十六进制
Private Sub Form_Resize() '垂直渐变窗口
Dim i, j As Long
Const ColorStart = H0
Const ColorEnd = HFF
j = ColorStart
Form1.AutoRedraw = True
For i = 1 To Form1.ScaleHeight
Form1.Line (0, i)-(Form1.ScaleWidth, i), j
j = Int(ColorStart + (ColorEnd - ColorStart) / Form1.ScaleHeight * (i - i Mod 300)) * H1
Next i
End Sub
Private Sub Option1_Click() '第一个OptionButton负责将各种进制转换成十进制
Dim i As Long
Dim Des As Long
Dim Resu As String
Des = 0
Resu = Text1.Text
If Flag = 2 Then
For i = 1 To Len(Text1.Text)
Des = Des + CInt(Right(Resu, 1)) * (2 ^ (i - 1))
Resu = Left(Resu, Len(Resu) - 1)
Next i
ElseIf Flag = 16 Then
For i = 1 To Len(Text1.Text)
Select Case Right(Resu, 1)
Case "A"
Des = Des + 10 * (16 ^ (i - 1))
Case "B"
Des = Des + 11 * (16 ^ (i - 1))
Case "C"
Des = Des + 12 * (16 ^ (i - 1))
Case "D"
Des = Des + 13 * (16 ^ (i - 1))
Case "E"
Des = Des + 14 * (16 ^ (i - 1))
Case "F"
Des = Des + 15 * (16 ^ (i - 1))
Case Else
Des = Des + CInt(Right(Resu, 1)) * (16 ^ (i - 1))
End Select
Resu = Left(Resu, Len(Resu) - 1)
Next i
ElseIf Flag = 8 Then
For i = 1 To Len(Text1.Text)
Des = Des + CInt(Right(Resu, 1)) * (8 ^ (i - 1))
Resu = Left(Resu, Len(Resu) - 1)
Next i
Else
MsgBox "进制转换错误,不存在的进制类型"
End If
Text1.Text = CStr(Des)
Flag = 0
End Sub
Private Sub Option2_Click() '转换为2进制
Dim i, Des As Long
Dim Resu As String
If Flag 0 Then Option1_Click '如果不是10进制,先转换成十进制
Resu = ""
Des = CLng(Text1.Text) '10进制转换成2进制
While Des 0
Resu = Des Mod 2 Resu
Des = Int(Des / 2)
Wend
Text1.Text = Resu
Flag = 2
End Sub
Private Sub Option3_Click() '转换为16进制
If Flag 0 Then Option1_Click '如果不是10进制,先转换成十进制
Des = CLng(Text1.Text)
While Des 0 '10进制转换成16进制
Select Case Des Mod 16
Case 10
Resu = "A" Resu
Case 11
Resu = "B" Resu
Case 12
Resu = "C" Resu
Case 13
Resu = "D" Resu
Case 14
Resu = "E" Resu
Case 15
Resu = "F" Resu
Case Else
Resu = Des Mod 16 Resu
End Select
Des = Int(Des / 16)
Wend
Text1.Text = Resu
Flag = 16
End Sub
Private Sub Option4_Click() '转换为8进制
Dim i, Des As Long
Dim Resu As String
If Flag 0 Then Option1_Click '如果不是10进制,先转换成十进制
Resu = ""
Des = CLng(Text1.Text) '10进制转换成8进制
While Des 0
Resu = Des Mod 8 Resu
Des = Int(Des / 8)
Wend
Text1.Text = Resu
Flag = 8
End Sub