汇编语言中 ascii码转换成二进制数的原理问题
发布网友
发布时间:2022-04-29 07:50
我来回答
共4个回答
热心网友
时间:2022-06-24 12:18
举个例子 数字1 的ASCII是 31 的二进制是“1111”;
而数字1的二进制只是 “1”;
ASCII码是一种编码方式,如果取得一个“1111”的ASCII码,那么系统就会自动解析为数字1。
数据类型表示数字的类型如int,double 等类型在内存中是以换算的二进制存的,而字符类型等在内存中是以ASCII存的,这个通过查ASCII得到相应的二进制,然后存放于内存。
比如:32767 当作int型 为整数,利用除2取余法得到相应的二进制数存于内存(本来应该存补码,但是正数的补码和原码相同)所占的内存空间跟其对应的数据类型有关,可能还与机器有关,
而32767 当作字符 即“32767”,这时应该分解‘3’,‘2’,‘7’,‘6’,‘7’,然后查对应的ASCII码 对应的值为:0011001 00110010 00110111 00110110 00110111 所以在存放的即为该二进制的组合,且占5个字节的内存。
热心网友
时间:2022-06-24 12:19
起先,ax中存放的是两位十进制数的ASCII码,也就是说,ah和al中各自存放有ASCII码为30h~39h的某一个码值。你先将ax减去3030h,将其ASCII码转换成两个十进制数码,然后将存放十位数的ah乘上10,再加上存放个位数的al就变成一个两位的十进制数了。
热心网友
时间:2022-06-24 12:19
以12为例AH =31h AL=32h
去ASCII码 AH-'0' ,AL-'0' =>AH=1,AL=2,此时AX=102h,并不是12
经AH*10+AL计算后就得12 了
热心网友
时间:2022-06-24 12:20
例如,大写字符‘A’ 的ASCII码 :
AH = 06d
AL = 05d
AH*10d + AL = 06d*10d +05d = 60d+05d = 65d = 41h = 100 0001B追问那么转换后的10进制数是怎样就转换成2进制数呢?
追答10进制转二进制--------逐次除以2取余数,直至商为零。
各次的余数由先至后的排列,即二进制数由低位到高位的排列。