编程-汇编把一个16位无符号二进制数转换成为用8421BCD码表示的5位十进制数

问题描述

汇编把一个16位无符号二进制数转换成为用8421BCD码表示的5位十进制数

汇编把一个16位无符号二进制数转换成为用8421BCD码表示的5位十进制数。转换算法可以是:用二进制数除以10000,商为“万位”,再用余数除以1000,得到“千位”;依次用余数除以100、10和1,得到“百位”、“十位”和“个位”

解决方案

unsigned int ui;//(16位无符号二进制数)
unsigned char uc[5];//(BCD码表示的5位十进制数)

uc[4]=(ui/10000)%10;
uc[3]=(ui/1000)%10;
uc[2]=(ui/100)%10;
uc[1]=(ui/10)%10;
uc[0]=ui%10;

解决方案二:

先写出C语言版本的,然后再VC中查看汇编代码即可。

时间: 2024-12-23 18:22:25

编程-汇编把一个16位无符号二进制数转换成为用8421BCD码表示的5位十进制数的相关文章

ascii-字库数组元素为什么定义成16位无符号

问题描述 字库数组元素为什么定义成16位无符号 LCD(16BPP)的ASCII(8x16)字库数组为什么定义成16位无符号而不是8位,图片资源文件为什么定义成8位: const uint16 ascii[4096] ={ }: const uint8 gImage[614400] ={ }: 解决方案 如果需要>32768以上,就需要定义成无符号,否则无所谓

C语言之将无符号字符型转化为ascii码值

这个宏是在linux内核中获取的,主要的功能是能够将一个无符号字符型的参数转化为ASCII码值. ASCII : ASCII 编码里包括了128个字符.用 十进制 0  到 127 来表示 .那就对了, 0 到 127 不就是 128个字符吗. 每一个数字都代表一个字符.看ASCII 编码表 我们来看看代码: #include <stdio.h> #include <stdlib.h> #define toascii(c) (((unsigned char)(c))&0x7

北京一家软件公司的面试题:将IP地址转化为32位无符号整型表示法,并考虑用网络字节顺序表示

问题描述 你会做了吗? 解决方案 解决方案二:么意思?解决方案三:很简单的usingSystem.Net;//------------------IPAddressip=IPAddress.Parse("192.168.1.1");byte[]arr=ip.GetAddressBytes();Array.Reverse(arr);uintipui=BitConverter.ToUInt32(arr,0);解决方案四:楼上周星星,UP,顺便接分解决方案五:引用2楼viena的回复: 很简

请教程序猿哥哥8位有符号,无符号,16位有符号无符号的问题

问题描述 16进制45转8位有符号16进制33转8位无符号16进制0BB8转16位无符号16进制1AAE转16位无符号整形16进制FE84转16位有符号整形16进制D100转16位有符号麻烦告诉如何转换,最好能附上代码,万分感谢,祝马上有钱 解决方案 解决方案二:搞了好久没搞明白头都憋大了解决方案三:坐等好人粗线解决方案四:搞不定下不了班了啊啊啊解决方案五:BitConverter.Get类型(newbyte[]{十六进制})解决方案六:只举了部分例子.其中_byte本身就是8位有符号sbyte

深入分析C语言中的有符号和无符号

就像我们必须决定某个量使用整数还是实数,使用多大的范围数一样,我们必须自已决定某个量是否需要正负.如果这个量不会有负值,那么我们可以定它为带正负的类型. 在计算机中,可以区分正负的类型,称为有符类型(signed),无正负的类型(只有正值),称为无符类型. (unsigned)数值类型分为整型或实型,其中整型又分为无符类型或有符类型,而实型则只有符类型. 字符类型也分为有符和无符类型. 比如有两个量,年龄和库存,我们可以定前者为无符的字符类型,后者定为有符的整数类型. 2.使用二制数中的最高位表

C语言参考程序—无符号一位整数的四则运算

题目:输入一个无符号的一位整数的四则运算表达式,输出其结果.例如输入:1+3*6-2,则输出:17 分析:因为不涉及到括号,只是简单的四则运算,我的想法是如果有乘除法先计算,没有的话就按照加减法从左到右的顺序进行计算.在开始的时候,首先检查是否有乘除法运算符,有的话就取出前后两个操作数进行计算,将结果保存起来.没有的话就将加减运算符先存起来. 主要过程: 1.输入的是一个四则运算的表达式,在计算机中按照字符串的形式存储.数据和运算符需要分开处理. 2.引入一个整型的数组,其大小为字符串长度加一,

c语言-关于C语言无符号规格化的一个理解

问题描述 关于C语言无符号规格化的一个理解 看深入理解计算机系统里面.关于规格化的一段描述:......也就是说,指数的值是E=e-Bias其中e是无符号数,其位表示为ek-1···e1e0而Bias是一个等于2k-1 -1(单精度是127,双精度是1023)的偏置值..... 我知道C语言单精度的指数位是8位,取值范围是-126到127.但是我对E=e-Bias不理解.这里的e代表的是什么?本人小白求解释.. 解决方案 e就是你的指数值,给个例子 0100 0010 1**111 0110 0

bmp格式是否可以构建16位无压缩灰阶图片?

问题描述 bmp格式是否可以构建16位无压缩灰阶图片? bmp格式是否可以构建16位无压缩灰阶图片? 也就是说2个字节表示一个像素的灰度值,其范围为0~65535. 查阅资料发现bmp无压缩时,需采用BIRGB,但系统随后会默认分解2字节的像素值, 从而按RGB555格式构成彩色图,即使添加一个灰阶颜色板也不行. 这是生物方面图像需求,不太清楚是否可以构成16位灰阶bmp文件. 解决方案 标准的 BMP 16 位时肯定是有处理的,数据有一定的丢失,只有 24 位时是真实还原的. 这也不叫压缩,因

报错:在经符号扩展的操作数上使用了按位“或”运算符;请考虑首先强制转换为较小的无符号类型

问题描述 在一个类中,有以下代码行,因为代码太长,省去其他部分.internalshortbi_buf;internalintbi_valid;internalvoidsend_bits(intvalue,intlength){intlen=length;unchecked{if(bi_valid>(int)Buf_size-len){//intval=value;//bi_buf|=(val<<bi_valid);bi_buf|=(short)((value<<bi_val