欢迎来到天天文库
浏览记录
ID:24000211
大小:24.50 KB
页数:3页
时间:2018-11-12
《无符号十进制word和有符号十进制数int区别》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、无符号十进制word和有符号十进制数int区别 字(word)数据格式包括无符号十进制,范围b#(0,0)~b#(255,255),16位。 整数(int)数据格式为有符号十进制数,范围-32763~+32767,16位。 请问:1.这两种数据格式只是十进制数的正负号区别吗? 2.为什么一种用字节b#表示,一种用纯数字十进制表示? 3.b#(255,255),这种表示方法是什么意思? 问题补充: 谢谢几位老师的解答,我还有一点疑问,字(word)数据格式包括bcd码。 书上介绍说bcd码表示的十进制数是为了和人打交道方便,而且可以提高人
2、的工作效率。二进制转ascii码、转十进制整数(int)、转bcd码,都是计算机内部直接转换,个人认为内部转换和人的工作效率没有关系。而且同样一个二进数数用ascii码和bcd码表示的数值还不一样,容易让人误解。我的问题是: 1.既然制定了ascii码、十进制整数(int)显示十进制数,bcd码显示不了优势,为什么还要制定bcd码? 2.计算机内部二进制转十进制整数要用bcd码过渡转换吗? 最佳答案 先来了解一下机器编码代表的含义。 例如,如下存储空间存储如下数据 mw0=w#16#8001,.对于赋值,梯形
3、图用move指令,用stl指令表,则采用t装载和l传送指令共同实现。则其中mb0=b#16#80,mb1=b#16#0 所以,上面“峰转花明”的理解是错误的。 因数据类型的定义规范的存在,mw0被机器理解成的变量类型不一样,则所代表的数字大小不一样 若定义为word类型,则mw0=w#16#8001=32769,无关符号。 若定义为int类型,则mw0=w#16#8001=-32767,为负数 mw0被机器识别为何种数据类型,则要看mw0参与了何种运算。例如参与比较、转换、整数运算、整数右移,则会被机器理解会int型数据,若参与字逻辑、字移位,会
4、被机器理解为word。 例如mw0=w#16#8001用move指令直接赋值给md2,这里不涉及类型识别,则md2=dw#16#00008001,则无论后续参与何种运算怎么样理解,md2=+32769,若使用i_di指令,将mw0赋值给md2,则md=dw#16#ffff8001,该指令将mw0自动识别为int型数据。 对于你的问题 1.这两种数据格式只是十进制数的正负号区别吗? 对于word类型常数,赋值给变量,可以有多种表示方式。b#(*,*)只是其中一种。b(*,*)表示按字节描述,其中*数据,按十进制书写,不能是二进制、也不是16进制。例如
5、b#(f8,01)就是错误的写法。 2.为什么一种用字节b#表示,一种用纯数字十进制表示? 这是规定,便于机器识别。当机器见到b#(*,*)则认为这是按字节以十进制书写的数值,程序可以自动转换为16进制书写的数据。对于以纯数字书写的数据,则自动识别为真正意义上的数,例如12,就是int数据,12.0就会理解为浮点数。 3.b#(255,255),这种表示方法是什么意思? b#(255,255)=w#16#ffff,也就是b#(255,255)只是一种书写方式的不同而已。
此文档下载收益归作者所有