汇编:2进制数转为10进制数

 1 ;功能:16位的2进制数转为5位的10进制数并输出
 2 DATAS SEGMENT
 3 Num dw 1111100111B    ;带转换的二进制数(<=16位 测试用例对应的10进制为999)
 4 buffer db 5 dup(0)      ;用来保存结果
 5 jm dw 10000,1000,100,10,1   ;用于每次循环的除数
 6 DATAS ends
 7 CODES SEGMENT
 8     ASSUME CS:CODES, DS:DATAS
 9     START:
10         mov AX,DATAS
11         mov DS,AX
12
13         mov di,offset jm
14         mov si,offset buffer
15
16         xor cx,cx
17         mov cx,5        ;设置循环次数5次
18
19         mov ax,Num
20
21     next:
22         xor dx,DX
23         mov bx,[di]     ;取除数
24         add di,2        ;存放除数的偏移地址每次加2因为 为字
25         div bx
26         add al,30H      ;转化为ASCII码便于输出显示
27         mov [si],al     ;保存商
28         inc si          ;存放结果的偏移地址每次加1
29         mov ax,DX       ;把余数为新的被除数
30
31         loop Next
32
33     print:
34         mov byte ptr[si],‘$‘    ;字符串末尾加上结束符
35         mov dx,offset buffer
36         mov ah,09H
37         int 21h
38                         ;向屏幕打印输出
39     exit:
40         mov ah,4ch
41         int 21H
42 CODES ends
43     end START

原文地址:https://www.cnblogs.com/roseAT/p/10246423.html

时间: 2024-08-05 05:58:50

汇编:2进制数转为10进制数的相关文章

【POJ 1200】Crazy Search(将字符映射为数字,将NC进制hash成10进制)

题目链接 题目链接 http://poj.org/problem?id=1200 题意 原字符串有NC个不同字母,统计原字符串长度为N的子字符串个数 解题思路 将字符按ASCII码映射成数字. 将n个字符,即n位NC进制拼起来. 将拼起来的n位NC进制转化为10进制. 将10进制映射入hash表,每次映射判断是否已经存在. 若不存在,则ans++:否则将hash设置为存在 如何将子串(n位NC进制)映射为10进制 a = 0 b = 1 c = 2 则 cbaa = 2 * 3^3 + 1 *

10进制数转为16进制

问题 输入一个10进制数,输出这个10进制数对应的16进制数 思路 首先用10进制数除以16,余数则为不能进位的数字,则写在最低位上,商的含义是有多少个16,如果商大于等于16的话,意味还可以接着进位,那么用商接着除以16,余数写在倒数第二位上--以此进行下去,直到不能进位为止 代码 #include <iostream> #include<string> using namespace std; string m = "0123456789ABCDEF"; i

MFC 编辑框输入16进制字符串转换为16进制数或者10进制数据计算

1.编辑框添加变量,并选择变量类型为CString. 2.  使用"_tcstoul"函数将Cstring 类型转换为16进制/10进制数进行计算. 原文地址:https://www.cnblogs.com/lize19940412/p/10068273.html

mysql16进制数据转换为10进制数据

需求:表中的数据的16进制存储在数据库中,先需要将数据按照10进制进行输出解决方法:使用mysql自带的conv函数进行数据转换语法如下:conv(N,from base ,to base)实例1:SELECT conv( '0a', 16, 10 )实例2:set @n = "0926F281";select conv(@n,16,10);查询结果通过conv可以实现在mysql中的数据的相互装换 原文地址:http://blog.51cto.com/maoxiaoxiong/233

8进制转为10进制(java)

package acm; import java.util.Scanner; public class L3_2 { /**   * @param args   */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan=new Scanner(System.in); int a[]=new int[1000]; int n=scan.nextInt(); int i=0;

lua 转换16进制字符串为10进制数值

> print(tonumber("03FFACB", 16)) 4192971 利用tonumber函数,"16"表示"03FFACB"为16进制数.

汇编语言程序:16进制转换成10进制(三种方法)

1 ;天水浪客(Gouki Jiang) , 16进制to10进制例题 2007.5.18 2 STACK SEGMENT PARA STACK 3 S_AREA DW 100H DUP(?) 4 S_TOP EQU $-S_AREA 5 STACK ENDS 6 7 DATA SEGMENT PARA 8 VALUE DW 0EB9AH ;060314 9 RESULT DB 5 DUP(?),'$' 10 DATA ENDS 11 12 CODE SEGMENT PARA 13 ASSUME

m进制转化为10进制

#include<iostream> using namespace std; int main() { string n; int m, len, i, ans = 0; cin >> n >> m; len = n.length(); for (i = 0; i < len; i++) { if (n[i] <= '9') ans = ans * m + n[i] - '0'; else ans = ans * m + n[i] - 'A' + 10;

c语言将2进制数转化为10进制数(栈的初始化,进栈,出栈)

1 //c语言描述 将2进制转化为10进制 2 #include <stdio.h> 3 #include <stdlib.h> 4 #include <math.h> 5 #define STACK_INIT_SIZE 20 6 #define //栈满后再分配 7 8 typedef char ElemType; 9 typedef struct 10 { 11 ElemType *base; //栈底 12 ElemType *top; //栈底 13 int s