为什么负的16进制数最前面要加个0

来源:百度知道 编辑:UC知道 时间:2024/05/25 12:38:59
小弟最近在学习The Art of Assembly Language,看到里面的16进制的负数表示的时候有个地方不大明白
比如说8位的-64的16进制表示
它写成0C0h,但是为什么前面要加个0呢?C0h难道就不表示-64了么?
我知道在16进制表示的时候,一位相当于2进制的4位,那么0C0h这样是不是会让以为是3个4位也就是12位的二进制数呢?
它下面又写到,把这个-64表示成相等的16位的16进制的数是0FFC0h这样的,前面又加了个0,我不大看的懂,这个0是不是表示数据停止的意思?那么正数为什么就没有这个0了?
请各位大侠解迷!!谢谢!

16进制怎么表示:十六进制全字节表示8-f开头的有符号数都是负数,如0x8fff(16bit数)
八进制全字节表示4-7开头的有符号数都是负数
047777(15bit数)

上面是都可以满字节表示时候才是对的,正常情况下转换成二进制计算

0F4H=11110100B这个?就表示负的了?为什么前边加零?
0F4H=000011110100B这个是正数
前面的0就是为了明确表示它的位数

  为了与绝对值相同的正16进制数区别。
  十六进制(英文名称:Hexadecimal),是计算机中数据的一种表示方法。同我们日常生活中的表示法不一样。它由0-9,A-F组成,字母不区分大小写。与10进制的对应关系是:0-9对应0-9;A-F对应10-15;N进制的数可以用0~(N-1)的数表示,超过9的用字母A-F。