用汇编语言将带符号十进制数据的ASCII码串转换为二进制补码表示怎么做?

用汇编语言将带符号十进制数据的ASCII码串转换为二进制补码表示怎么做?,第1张

将带符号十进制数据的ASCII码串转换为二进制补码表示

主要是不懂带符号十进制数据的ASCII码串在内存中是如何存储的。

--------------

带符号十进制数据的ASCII码串,

这是指:以 0 做结尾标志的一串 ASCII 码。

随便写出两串,如下:

 DB  '+12345', 0

 DB  '-24680', 0

 

把它们,转换为二进制补码表示,即为:

 0011 0000 0011 1001;

 1001 1111 1001 1000。

 

汇编语言程序如下:

其中“带符号十进制数据的ASCII码串”是:-13579。

程序显示出的,正是其补码:1100 1010 1111 0101。

换算方法如下:

1、数在计算机中是以二进制形式表示的。

2、数分为有符号数和无符号数,原码、反码、补码都是有符号定点数的表示方法。

3、一个有符号定点数的最高位为符号位,0是正,1是副;【原码】就是这个数本身的二进制形式。

4、正数的【反码】和补码都是和原码相同;负数的【反码】是将其原码除符号位之外的个位求反。

拓展资料

1、C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

2、尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

c语言补码的表示方法是:正数的补码就是其本身,负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1 (即在反码的基础上+1)。

[+1] = [00000001](原码) = [00000001](反码) = [00000001](补码) [-1] = [10000001](原码) = [11111110](反码) = [11111111](补码) 对于负数,补码表示方式也是人脑无法直观看出其数值的。通常也需要转换成原码在计算其数值。 一、原码 求原码:X≥0,则符号位为0,其余照抄; X≤0,则符号位为1,其余照抄。 【例1】X=+1001001 [X]原 = 01001001 【例2】X=-1001001 [X]原 = 11001001 二、反码 求反码:若X≥0,符号位为0,其余照抄; 若X≤0,符号位为1,其余按位取反。 【例3】X=+1001001 [X]反 = 01001001 【例4】X=-1001001 [X]反 = 10110110 三、补码 求补码:若X≥0,符号位为0,其余照抄; 若X≤0,符号位为1,其余取反后,最低位加1。 【例5】X=+1001001 [X]补 = 01001001 【例6】X=-1001001 [X]补 = 10110111


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11782112.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存