精华内容
下载资源
问答
  • 基于C实现二、八、十六进制数转十进制数的算法,最终封装到一个函数里面,使用方便!!!
  • 从键盘接收一个十六进制数,编程实现将其转换成十进制数。 输入 输入一个十六进制数 输出 输出一个十进制数 样例输入 3E7 样例输出 999 import java.util.Scanner; public class Main { public static...

    从键盘接收一个十六进制数,编程实现将其转换成十进制数。
    输入
    输入一个十六进制数
    输出
    输出一个十进制数
    样例输入
    3E7

    样例输出
    999

    import java.util.Scanner;
    
    public class Main {
    
        public static void main(String[] args) {
            String m;
            Scanner scan=new Scanner(System.in);
            m=scan.nextLine();
            Integer d = Integer.parseInt(m,16);
            System.out.println(d);
        }
    }
    展开全文
  • 将键盘输入的十六进制数转换为十进制输出。 实验原理 首先利用dos功能调用,读取输入的两位十六进制的第一位数字,首先判断输入的字符是否在0-9、a-f、A-F之间,如果不在则程序直接退出,如果在则将大写字母减37h,...

    实验内容:

    将键盘输入的十六进制数转换为十进制输出。

    实验原理

    首先利用dos功能调用,读取输入的两位十六进制的第一位数字,首先判断输入的字符是否在0-9、a-f、A-F之间,如果不在则程序直接退出,如果在则将大写字母减37h,小写字母减57h,数字减30h,然后乘以十六后以二进制的形式暂存在bl当中,同理输入第二位数字,与bl相加,然后判断bl是否大于99,如果大于99,则先除以100将百位数显示出来,同理显示十位和个位数字,如果小于99,则直接除以10显示十位数,然后显示个位数字。

    代码附录如下:

    code segment
    assume cs:code
    
    start:
    push ds
    sub ax,ax
    push ax
    mov bx,0
    mov dx,0
    mov cx,10 ;初始化,设置循环次数为10次
    
    xunhuan:
    mov ah,1
    int 21h ;读入第一位
    cmp al,'0'
    jb aa
    cmp al,'9'
    ja dayu91
    sub al,'0' ;减去30H
    jmp zhixing
    
    dayu91:
    cmp al,'A'
    jb aa
    cmp al,'F'
    ja dayuF1
    sub al,37h;减去60H
    jmp zhixing
    
    dayuF1:
    cmp al,'a'
    jb aa
    cmp al,'f'
    ja aa
    sub al,57h;减去60H
    jmp zhixing
    
    
    zhixing:
    mov dl,16
    mul dl ;乘以16
    mov bl,al ;放到bl中
    
    ;输入个位数
    mov al,0
    mov ah,1
    int 21h
    cmp al,'0'
    jb aa
    cmp al,'9'
    ja dayu92
    sub al,'0'
    jmp next
    
    
    dayu92:
    cmp al,'A'
    jb aa
    cmp al,'F'
    ja dayuF2
    sub al,37h ;减去37H
    jmp next
    
    
    
    dayuF2:
    cmp al,'a'
    jb aa
    cmp al,'f'
    ja aa
    sub al,57h ;减去57H
    jmp next
    aa:
    mov ax,4c00h
    int 21h
    
    
    
    next:
    add bl,al ;此时dl中为2进制表示
    ;以下换行
    mov dl,13
    mov ah,2
    int 21h
    mov dl,10
    mov ah,2
    int 21h
    
    
    ;以下为以10进制形式输出
    cmp bl,99    ;如果是三位十进制数显示,跳转
    ja sanwei  
    mov al,bl      ;如果是两位十进制数显示
    mov ah,0
    mov cl,10
    div cl
    
    mov ch,ah
    mov dl,al
    add dl,30h
    mov ah,02h
    int 21h
    
    mov dl,ch
    add dl,30h
    mov ah,02
    int 21h
    ;以下换行
    mov dl,13
    mov ah,2
    int 21h
    mov dl,10
    mov ah,2
    int 21h
    
    dec cx
    jz jieshu
    jmp xunhuan
    
    
    sanwei:
    ;如果是三位十进制数显示,10进制形式输出
    mov al,bl      ;算出百位数
    mov ah,0
    mov cl,100
    div cl
    mov dl,al       ;
    add dl,30h
    mov ch,ah        ;把余数放到ch中
    mov ah,02h
    int 21h
    mov al,ch
    mov ah,0
    mov cl,10
    div cl
    mov ch,ah
    mov dl,al
    add dl,30h
    mov ah,02h
    int 21h
    mov dl,ch
    add dl,30h
    mov ah,02
    int 21h
    ;以下换行
    mov dl,13
    mov ah,2
    int 21h
    mov dl,10
    mov ah,2
    int 21h
    
    dec cx
    jz jieshu
    jmp xunhuan
    
    
    jieshu:
    mov ax,4c00h
    int 21h
    code ends
    end start
    
    

    实验结果:

    在这里插入图片描述
    通过观察实验结果可以发现,当输入十六进制数字时,程序将其转化为了十进制数字并显示了出来。

    体会与感想

    通过本次实验,我学会了如何进行汇编程序的编写,以及熟练掌握汇编语言中的各种基础命令与操作,也十分感慨高级语言的发明是多么厉害的选择,仅仅一个转换进制的程序,用C++仅需要几行就可以编写出来,然而用汇编语言编写却用了一百多行。但也让我对计算机底层如何进行代码实现有了深刻的理解。在实验过程中我遇到了很多问题,比如由于程序代码太长,跳转总是超出范围,需要多跳几次,且汇编语言只能顺序执行,这对程序的编写提升了很大的难度。与此同时,在进行循环操作时,由于在程序中我已经使用了cx的值,导致循环失败,在加入push和pop的压栈出栈命令后,很好的保护了cx的值,使得程序顺利执行。本次实验让我收获匪浅,受益良多。

    展开全文
  • 十进制数转换为十六进制数Conversion of decimal number system into hexadecimal number system can be done by successively dividing an integral part by 16 till the quotient is 0 and then reading the ...

    十进制数转换为十六进制数

    Conversion of decimal number system into hexadecimal number system can be done by successively dividing an integral part by 16 till the quotient is 0 and then reading the remainder of all in the bottom to the top manner, where the bottom one is the MSB and the topmost is the LSB. For fractional part, we successively multiply it by 16 till we get 0 in the fractional part of the product term, the integral part of the product term recorded from top to bottom forms the respective hexadecimal number where topmost is the MSB.

    可以通过将一个整数部分依次除以16直到商为0,然后从下到上依次读取所有的余数,从而将十进制数系统转换为十六进制系统 ,其中最低的是MSB,最高的是是LSB。 对于小数部分,我们将其连续乘以16,直到乘积项的小数部分得到0,从上到下记录的乘积项的整数部分形成相应的十六进制数,其中最高的是MSB。

    To convert a mixed decimal number into hexadecimal, we will first convert integral and fractional parts into hexadecimal and then combine them.

    要将混合的十进制数转换为十六进制 ,我们将首先将整数和小数部分转换为十六进制,然后将它们组合。

    The only thing to be kept in mind is the digits in hexadecimal number system are as:

    唯一要记住的是十六进制数字中的数字为:

    1 , 2, 3, 4, 5, 6, 7, 8, 9, 10 = A, 11 = B, 12 = C, 13 = D, 14 = E, 15 = F

    1、2、3、4、5、6、7、8、9、10 = A,11 = B,12 = C,13 = D,14 = E,15 = F

    Now let's take examples to understand the conversion of decimal number to hexadecimal number.

    现在,让我们以示例了解十进制数到十六进制数转换

    Example 1:

    范例1:

    Convert (1954.785)10 to ( ? )16

    将(1954.785) 10转换为(?) 16

    Solution:

    解:

    Given decimal number (1954.785)10 is of mixed type and contains both integral (1954)10 and decimal part (0.785)10. To convert the given number into hexadecimal, we have to convert integral and fractional part individually into hexadecimal and then combine them together to get the required result.

    给定的十进制数(1954.785) 10是混合类型,并且包含整数(1954) 10和十进制部分(0.785) 10 。 要将给定数字转换为十六进制,我们必须将整数和小数部分分别转换为十六进制,然后将它们组合在一起以获得所需的结果。

    Integral Part

    整体部分

    DivisorQuotientRemainder
    161954
    161222 LSB
    16710 = A
    1607 MSB
    除数
    16 1954年
    16 122 2 LSB
    16 7 10 = A
    16 0 7个MSB

    The remainders read from bottom to top gives the equivalent hexadecimal number i.e., (1954)10 = (7A2)16.

    从下到上读取的余数给出等效的十六进制数,即(1954) 10 =(7A2) 16

    Fractional Part

    小数部分

        0.785 * 16 = 12.56 = C.56     (MSB)
        0.56 * 16 = 8.96
        0.96 * 16 = 15.36 = F.36
        0.36 * 16 = 5.76
        0.76 * 16 = 12.16 = C.16    (LSB)
    
    

    The integer part of the product term read from top to bottom forms the equivalent hexadecimal number i.e., (0.785)10 = (0.C8F5C)16.

    从上到下读取的乘积项的整数部分形成等效的十六进制数,即(0.785) 10 =(0.C8F5C) 16

    After converting both integral part and fractional part individually into hexadecimal, now we combine both to get our desired result i.e., (1954.785)10 = (7A2.C8F5C)16.

    将整数部分和小数部分分别转换为十六进制后,现在我们将两者结合起来即可得到所需的结果,即(1954.785) 10 =(7A2.C8F5C) 16

    Example 2:

    范例2:

    Convert (3283.715)10 to ( ? )16

    将(3283.715) 10转换为(?) 16

    Solution:

    解:

    Integral Part

    整体部分

    DivisorQuotientRemainder
    163283
    162053 LSB
    161213=D
    16012=C MSB
    除数
    16 3283
    16 205 3 LSB
    16 12 13 = D
    16 0 12 = C高位

    The remainders read from bottom to top gives the equivalent hexadecimal number i.e., (3283)10 = (CD3)16.

    从下到上读取的余数给出等效的十六进制数,即(3283) 10 =(CD3) 16

    Fractional Part

    小数部分

        0.715 * 16 = 11.44 = B.44   (MSB)
        0.44 * 16 = 7.04
        0.04 * 16 = 0.64
        0.64 * 16 = 10.24 = A.24    (LSB)
    
    

    The integer part of the product term read from top to bottom forms the equivalent hexadecimal number i.e., (0.715)10 = (0. B70A)16.

    从上到下读取的乘积项的整数部分形成等效的十六进制数,即(0.715) 10 =(0. B70A) 16

    After converting both integral part and fractional part individually into hexadecimal, now we combine both to get our desired result i.e., (3283.715)10 = (CD3. B70A)16.

    在将整数部分和小数部分分别转换为十六进制之后,现在我们将两者合并以获得所需的结果,即(3283.715) 10 =(CD3。B70A) 16

    Example 3:

    范例3:

    Convert (356.225)10 to ( ? )16

    将(356.225) 10转换为(?) 16

    Solution:

    解:

    Integral Part

    整体部分

    DivisorQuotientRemainder
    16356
    16224 LSB
    1616
    1601 MSB
    除数
    16 356
    16 22 4 LSB
    16 1个 6
    16 0 1个MSB

    The remainders read from bottom to top gives the equivalent hexadecimal number i.e., (356)10 = (164)16.

    从下到上读取的余数给出等效的十六进制数,即(356) 10 =(164) 16

    Fractional Part

    小数部分

        0.225 * 16 = 3.600		(MSB)
        0.600 * 16 = 9.600
        0.600 * 16 = 9.600
        0.600 * 16 = 9.600		(LSB)
    
    

    The integer part of the product term read from top to bottom forms the equivalent hexadecimal number i.e., (0.225)10 = (0.39)16.

    从上到下读取的乘积项的整数部分形成等效的十六进制数,即(0.225) 10 =(0.3 9 ) 16

    After converting both integral part and fractional part individually into hexadecimal, now we combine both to get our desired result i.e., (356.225)10 = (164.39)16.

    在将整数部分和小数部分分别转换为十六进制之后,现在我们将两者结合以获得所需的结果,即(356.225) 10 =(164.3 9 ) 16

    翻译自: https://www.includehelp.com/basics/conversion-of-decimal-number-system-into-hexadecimal-number-system.aspx

    十进制数转换为十六进制数

    展开全文
  • 1、byte[]数组中存的是十六进制需要转十进制 2、两个十六进制的byte需要组合成一个十进制,比如高位:0x01,低位:0x78 组合成0x0178转十进制 解决办法 /** * byte转为十进制int * @param bytes * @...

    在模拟modbus通信过程的时候,需要有如下转换过程

    1、byte[]数组中存的是十六进制需要转十进制

    2、两个十六进制的byte需要组合成一个十进制,比如高位:0x01,低位:0x78  组合成0x0178转十进制

    解决办法

        /**
    	 * byte转为十进制int
    	 * @param bytes
    	 * @return
    	 */
    	public static int byte2int(byte bytes){
    		// 将byte转换为8位二进制字符串 依赖 commons-lang-x.x.jar包
    		String binaryString = StringUtils.leftPad(Integer.toBinaryString(bytes & 0xff), 8, '0');
    		// 将二进制字符串转换为十进制整数值
    		int value = Integer.parseInt(binaryString, 2);
    		return value;
    	}
    	
    	/**
    	 * 两个十六进制转为十进制
    	 * @param b1 十六进制低位
    	 * @param b2 十六进制高位
    	 * @return
    	 */
    	public static int byteToInt(byte b1,byte b2){
    		int deci = (b1|b2<<8);
    		return deci;
    		
    	}
     

     

    欢迎关注微信公众号,公众号的好处是可以持续保持联系。

     

     

    展开全文
  • 十六进制数转换成十进制数的函数
  • 十六进制转换十进制原理介绍 十六进制转换为十进制,是先要将十六进制...十六进制F对应二进制1111,十六进制6对应二进制0110,十六进制C对应二进制1100,那么十六进制数0x1F6C对应的二进制数就是0001 1111 0110 1100。
  • 编一程序,把键入的十六进制数转换成十进制数并在屏幕上显示出来。键入的最大数为FFFFH,若键入的不是十六进制数,则显示出错提示。
  • 十进制转R进制 十进制转二进制 十进制整数二进制 十进制整数转换成二进制采用“除2倒取余”,十进制小数转换成二进制小数采用“乘2取整”。 例题: 135D = __ B 解析:如下图所示,将135除以2,得余数,直到...
  • 用汇编实现十六进制数向十进制数的转换 一、实现功能 实现一位十六进制数向十进制数的转换。 二、设计分析       汇编语言中,字符在机器中都是以ascii码的二进制格式存储,但是汇编语言写的时候常用...
  • 十六进制数转换成十进制数

    千次阅读 2017-08-06 20:24:19
    十六进制数转换成十进制数。 思路: 1、取低位数; 2、将低位数转换成相应的十进制数,,如A~10,C~12; 3、将转换的十进制数乘以16的n次方; 4、相加。 #include #include #include int fun (char ch) ...
  • Matlab将十六进制数转换为十进制数(有符号)(十六转十)
  • 用汇编语言将十进制数据转换成十六进制数。要求从键盘上输入一个十进制数,然后以十六进制数输出,用子程序实现
  • 十六进制 简单的二进制将十进制数转换为十六进制,十进制和二进制数。 下载并解压缩后,运行make命令。 $使 要仅清理.o文件,请输入make clean。 $使干净
  • 字符型十六进制数转换为字符型十进制数。例如 “13EC”是一个字符型十六进制数,将其转换为“13EC对应的十进制数
  • 把任意一个十进制数转换为二进制八进制十六进制数的c++源代码
  • 十进制数转换成十六进制数

    千次阅读 2017-07-26 23:04:15
    无聊写写的小玩意,把一个float 浮点型的十进制数转换成十六进制数
  • 二进制 二进制就是计算机常用的进制,即逢二进一。例如:1010 八进制 八进制即逢八进一。例如:626 十进制 ...十进制就是我们在计算中常用的进制,所以就不再举例(即逢...拿二进制数10010110举例 首先需要3个二进...
  • 支持批量进制转换的小工具,进制互换 批量转换 十六进制转十进制 十进制转十六进制
  • ASCII码值转化十六进制十进制数十六进制字符值十进制,ASCII码值;
  • 十六进制数和十进制数相互转换 汇编课设,有源代码,有报告,超全~~~
  • 它是一个转换计算器。它可以将十进制数转换为二进制八进制和十六进制。 它可以将二进制数转换为十进制和八进制十六进制
  • 十六进制转十进制数

    千次阅读 2018-03-05 19:49:36
    /*** 十六转十进制(位权法)* 如:十六进制数:6A,-------转换为十进制数是:6*161+(A换成10)100=96+1=97 十六进制数:FFF,--------转换为十进制数:15*162+15*161+15*160=4095* @author kevin**/public class ...
  • java_十进制数转换为二进制,八进制,十六进制数的算法
  • 题目:将十进制数转换为二进制数和十六进制数stack的先进后出原则,符合十进制二进制的转换规则。因此在解题时考虑使用stack。 同时使用string进行结果存储。 注意:1.十六进制数要在开头添加0x。2.string的末尾...
  • 八、十六进制数转换到十进制数

    万次阅读 2007-09-04 13:28:00
    二、八、十六进制数转换到十进制数关键词: 二、八、十六进制数转换到十进制 6.2.1 二进制数转换为十进制数二进制数第0位的权值是2的0次方,第1位的权值是2的1次方……所以,设有一个二进制数:0110 0100,转换为10...
  • 十进制转换为十六进制,也就是 采用 除k取余法 ,直接让10处以16,再对 数据如果小于10和大于10进行处理,代码如下: #include<iostream> #include<string> using namespace std; int main() { ...
  • 16进制10进制例程,十六进制转十进制,十六进制,十进制,属于入门级教程源码,由尽在眼前写的例子
  • 前些天用pb开发的时候发现PB中没有现成的进制转化的函数,于是自己写了一个,下载下去导入一下
  • 十进制数转化为其它进制 1.十进制转化为二进制数 十进制数15 上图中箭头的方向即为二进制数中从低位到高位(从右往左)的顺序, ...二进制数为:0000 0000 0000...3.十进制数转化为十六进制数 十六进制数为0,1,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 181,615
精华内容 72,646
关键字:

十六进制数怎么转十进制