有符号数和无符号数有什么区别?

 我来答
教育小百科达人
2023-01-14 · TA获得超过156万个赞
知道大有可为答主
回答量:8828
采纳率:99%
帮助的人:512万
展开全部

设x和y均为int型变量,且x=1,y=2,则表达式1.0+x/y的值为1.0。因为int型变量做除法后取整。

整数值通常在程序的源代码中指定为可选的前缀为+或 - 的数字序列。一些编程语言允许其他符号,例如十六进制或八进制。一些编程语言也允许数字组分隔符。

此数据的内部表示形式是值存储在计算机内存中的方式。与数学整数不同,计算机中的典型数据具有一些最小和最大可能值。



扩展资料:

在二进制计算系统中有四种众所周知的方式来表示有符号数。最常见的是二进制补码,它允许带有n位的有符号整数类型表示从-2到2-1的数字。

二进制补码算法很方便,因为表示和值之间存在完美的一对一对应关系(特别是没有单独的+0和-0),并且因为加法,减法和乘法不需要区分有符号和无符号类型。其他可能性包括偏移二进制,符号幅度和1'补码。

做而论道
高能答主

2025-04-03 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3.1万
采纳率:82%
帮助的人:8500万
展开全部

哪有什么“无符号数”、“带符号数”啊!

在计算机中,只有 0 和 1,既没有正负号,也没有小数点。

在计算机中,只有二进制的“零和正整数”(即自然数)。

在计算机中,根本就没有什么“无符号数”、“带符号数”!

当然,有人会狡辩说:自然数,就是无符号数。 但是“带符号数”确实是不存在的。

那么,计算机中的负数,是怎么出现的呢? 关键在于【算法】!

如果在加法计算时,舍弃了进位:正数,就能当做负数、加法,也就变成了减法。

且看下题:

用四位二进制数计算:5 + 15,和就是:1、0100。 进位 1,就是 16。

如果保留进位,和,就是:16 + 4 = 20。这就是“无符号数”的算法。

如果舍弃了进位,和,就只有 4,即为:5-1 = 4。这就是“带符号数”的算法。

舍弃了进位,也就是减去了 16。此时的 +15,当然就是“-1”了。

其实,1111,它就是 1111 ! 它本身并没有什么符号位!

它究竟是 +15,还是-1 ? 完全取决于你的算法!

它是“无符号数”还是“带符号数”? 根源并不在这个“数”! 而是在于算法!

算法,才是计算机的灵魂!

计算机老师应该在算法上面,讲清楚事实。

就不要在二进制数上面,歪七扭八的胡扯了。

----------

用 C 语言定义一个变量:unsigned char  x,C 程序对 x 进行计算时,就会保留进位 (256)。

此时,x 的表达范围就是:0 ~ 255。 当 x = 1111 111 时,也就是 x = 255。

如果定义变量时,只写了:char x,C 程序对 x 进行计算时,就会忽略进位。

忽略进位,不就是偷偷的减去了 2^8 = 256 吗?

那么,x 的表达范围则是:-128 ~ +127。 当 x = 1111 111 时,也就是 x = -1。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式