在计算机内部 数字和符号都用什么代码表示

炎钻水星 1个月前 已收到1个回答 举报

哏想哏想迩 2星

共回答了299个问题采纳率:92.2% 评论

计算机只有01,无所谓符号,包括浮点,整数。那么一个数字保存的计算机中内存中,到底代表什么意思,就看程序员怎么处理。

比如0xff,在8位机,程序员把他当做无符合数,就是255,当做有符号数,就是-1,程序员还能把当做一个字符。

譬如说用printf打印,%u,%d,%x,%c都可以打印同一个变量,内存中完全一样,但是打印出来就不一样。除了程序员如何理解这个数据之外,还有一个区分,就是指令。有人已经说了,符号乘法跟无符号乘法是2个指令,你用哪条指令,就是指定该数据是否有符号。

还有减法,减了之后除了结果外,还有一些标志位,有没有借位,是否为0等,减了之后后面根的那个跳转指令不同,数据的意义也不同。

比如ja用于无符合数,jg用于有符合数。1-(-1),就是判断1跟-1哪个大,你用jg,就是1大,用ja就是-1大。那么该用什么指令呢,总不能都写汇编吧。于是有高级语言有了类型定义,如c语言,明确定义一个变量是否有符号。那么编译器编译的时候就可以知道用哪条指令了。

7小时前

31
可能相似的问题

猜你喜欢的问题

热门问题推荐

Copyright © 2024 微短问答 All rights reserved. 粤ICP备2021119249号 站务邮箱 959505@qq.com