. : : 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