怎么用人机把十进制数转化成ASCII 点击:633 | 回复:5



tangshaojun

    
  • 精华:0帖
  • 求助:7帖
  • 帖子:12帖 | 23回
  • 年度积分:0
  • 历史总积分:69
  • 注册:2013年5月13日
发表于:2013-06-17 16:12:31
楼主

怎么用人机把十进制数转化成ASCII ,这个十进制数不是定数 位数也不定 请教各位前辈应该怎么写这个程序




zhangqingsheng09

  • 精华:1帖
  • 求助:4帖
  • 帖子:90帖 | 1003回
  • 年度积分:3
  • 历史总积分:2156
  • 注册:2009年3月05日
发表于:2013-06-17 16:35:57
1楼

如果你转换的二进制的每一位已经分别保存到一个数组里面了,那么也是同样的,对每一位数,ascii码就是30H+n

从未被超越

  • 精华:3帖
  • 求助:11帖
  • 帖子:108帖 | 1584回
  • 年度积分:1
  • 历史总积分:12293
  • 注册:2011年12月09日
发表于:2013-06-17 20:30:27
2楼

下载个软件也行,方便

wyb2866255---王者之师

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2013-06-17 23:09:18
3楼

      在如何编写把十进制数转化成ASCII的程序之前,应先知道十进制数与之对应ASIIC码的数学关系及将它们存放存储器的数制表示形式:

    1、每一位十进制数其值为0~9,其二进制值为:0000~1001,放在字节存储器将占用4个二进制数的位。一个字节内含8个二进制数的位,故一个字节可表示2位十进制数。这种用4位二进制数表示一位十进制数的数制叫BCD码。

    2、每一位十进制数“X”转换为ASIIC码的原则为:30+X   如 X=4,其对应ASIIC码=34,将其放入一字节存储器里用二进制数表示:0011_0100,用16进制数表示:16#34

    3、如被转换的十进制数最大为4位数,用BCD码表示可占一个字存储器空间,设为字存储器为MW10,MW10含2个字节,高字节为MB10,低字节为MB11。MB10的高4位为十进制数的千位数值,MB10的低4位为十进制数的百位数值。MB11的高4位为十进制数的十位数值,MB11的低4位为十进制数的个位数值。如将此4位十进制数转换为ASIIC码,需占用一个双字存储器空间,如VD10,它含有4个字节,每个字节代表一位ASIIC码,其每个字节的高4位数值皆=0011(3),低4位数为十进制数对应的数值,如十进制数1234,放入字存储器MW10里。其内容=0001_0010_0011_0100,用16进制数表示为:16#1234,转换为ASIIC码值放入VD10里,其内容=0011_0001_0011_0010_0011_0011_0011_0100,用16进制数表示:16# 31 32 33 34。

     了解上述3点,就可以很容易编出把十进制数转化成ASCII的程序:

     设MW10为4位十进制数存储区(存数形式为BCD码),VD10为转换为ASIIC码D的存数区。编程可以这样处理:

     1、将16#30303030送入VD10.

     2、将MB10右移4位送入MB8,再将MB8或入VB10。

     3、将MB10与16#0F相与,送入MB8,再将MB8或入VB11。

     4、将MB11右移4位送入MB8,再将MB8或入VB12。

      5、将MB11与16#0F相与,送入MB8,再将MB8或入VB13。

按这样步骤编程,其VD10的内容即为将MW10内的4位十进制数转换为ASIIC码值。

 

 

wyb2866255---王者之师

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2013-06-17 23:28:45
4楼

     按3楼原则编程如下:

ljbcompany

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 1289回
  • 年度积分:0
  • 历史总积分:5847
  • 注册:2011年4月24日
发表于:2013-06-18 13:49:15
5楼

ASCII码是以16进制形式存储的,你可以采取“数值输入”和“文数值显示”来实现这一功能。


热门招聘
相关主题

官方公众号

智造工程师