. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->基础知识
主题 : :  有关负数在计算机的表示,有点疑惑  [待解决] 回复[ 3次 ]   点击[ 400次 ]  
shawyi
[帖 主] [ 发表时间:2010-10-29 15:02 ] 
荣誉值:0
信誉值:0
注册日期:2010-10-27 15:29
我们知道,为了方便在计算机运算,实现符号位也能直接参与运算,引入补码来表示负数。
那现在有一个问题,计算机是如何识别内存单元中的这个数是有符号数还是无符号数。
比如 al中现在的内容是 10001000,此刻表示-78h,还是表示88h?
还是这个需要程序员定义?
goodxiaowan
[第3楼] [ 回复时间:2010-12-11 08:28 ] 
荣誉值:0
信誉值:0
注册日期:2010-05-23 12:24
首先,你要知道定义是多少位,比如8086cpu寄存器使用16位,那最高位(第15位)为符号位
0、1分别表示正、负!
一个正数的补码是本身,一个负数的补码是这个数的绝对值的二进制形式取反再加一,
比如:(在8位)-15, 我们先去绝对值为15,再转为二进制形式00001111————(取反+1)=11110000+1=11110001
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved