《C和指针》(ed2)中的一个小问题吐槽

foyzte 2011-09-13 01:11:19
3.13节的问题10:
一个无符号变量可不可以比相同长度的有符号变量容纳更大的值?
答案:
否。任何给定的n个位的值只有2^n个不同的组合,一个有符号值和无符号值仅有的区别在于它的一半值是如何解释的。在一个有符号值中,它们是负值。在一个无符号值中,它们是一个更大的正值。

以上是原文,这个回答是针对存储值的个数而言的,这样说的确只有2^n个不同的组合,但是就存储的值来说,明显就是无符号的更大嘛。真不知道不知道作者为什么要否定。。
...全文
321 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
风云的色彩 2012-04-23
  • 打赏
  • 举报
回复
额也想知道,嘿嘿
feidegengao 2012-04-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
翻译问题。
原文应该翻译为:
一个无符号变量可不可以比相同长度的有符号变量容纳更大多的值?
答案:
否。
[/Quote]
++
确实,刚看的时候觉得有点不对劲,后来仔细斟酌就如赵老师所言,翻译错咯
sh365 2012-04-19
  • 打赏
  • 举报
回复
看英文原文啊。
AnYidan 2011-09-13
  • 打赏
  • 举报
回复
解释的很清楚
1。给定的n个位的值只有2^n个不同的组合 -- 组合数相同
2。在一个无符号值中,它们是一个更大的正值 -- 无符号类型中数值更大,而且来自于有符号类型中负值的部分

3。更进一步,无论有无符号,其二进制数值相同
linshuqiang 2011-09-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zhao4zhong1 的回复:]

翻译问题。
原文应该翻译为:
一个无符号变量可不可以比相同长度的有符号变量容纳更大多的值?
答案:
否。
[/Quote]
+2
AkerIII 2011-09-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zhao4zhong1 的回复:]
翻译问题。
原文应该翻译为:
一个无符号变量可不可以比相同长度的有符号变量容纳更多的值?
答案:
否。
[/Quote]

+1
AndyZhang 2011-09-13
  • 打赏
  • 举报
回复
这个没必要纠结吧
jason-xu 2011-09-13
  • 打赏
  • 举报
回复
知道怎么回事就行了,何必咬文嚼字!
F_35GJL 2011-09-13
  • 打赏
  • 举报
回复
数在内存里都是以二进制存储的,只有在输出才分有符号和无符号。
南之倩倩 2011-09-13
  • 打赏
  • 举报
回复
学习下!
赵4老师 2011-09-13
  • 打赏
  • 举报
回复
翻译问题。
原文应该翻译为:
一个无符号变量可不可以比相同长度的有符号变量容纳更的值?
答案:
否。
jackyjkchen 2011-09-13
  • 打赏
  • 举报
回复
作者没说错啊

虽然
unsigned char能存255,而char只能到127

但char中的-1就是0xFF也就是255啊,需要的话强转一下就可以了,都没有额外的内存变量开销
qq120848369 2011-09-13
  • 打赏
  • 举报
回复
人家的意思就是同样的二进制有不一样的解析方式。

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧