社区
C语言
帖子详情
《C和指针》(ed2)中的一个小问题吐槽
foyzte
2011-09-13 01:11:19
3.13节的问题10:
一个无符号变量可不可以比相同长度的有符号变量容纳更大的值?
答案:
否。任何给定的n个位的值只有2^n个不同的组合,一个有符号值和无符号值仅有的区别在于它的一半值是如何解释的。在一个有符号值中,它们是负值。在一个无符号值中,它们是一个更大的正值。
以上是原文,这个回答是针对存储值的个数而言的,这样说的确只有2^n个不同的组合,但是就存储的值来说,明显就是无符号的更大嘛。真不知道不知道作者为什么要否定。。
...全文
321
14
打赏
收藏
《C和指针》(ed2)中的一个小问题吐槽
3.13节的问题10: 一个无符号变量可不可以比相同长度的有符号变量容纳更大的值? 答案: 否。任何给定的n个位的值只有2^n个不同的组合,一个有符号值和无符号值仅有的区别在于它的一半值是如何解释的。在一个有符号值中,它们是负值。在一个无符号值中,它们是一个更大的正值。 以上是原文,这个回答是针对存储值的个数而言的,这样说的确只有2^n个不同的组合,但是就存储的值来说,明显就是无符号的更大嘛。真不知道不知道作者为什么要否定。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
人家的意思就是同样的二进制有不一样的解析方式。
C语言篇 +
指针
进阶练习 + qsort模拟实现(回调函数思想) +
指针
和数组笔试题_bubblesrot函数(1)
/串的长度,但是这个数组
中
并未包含‘\0’,strlen还会继续往后查找,至于‘\0’的出现时机决定了strlen求出字符串的长度,而这个‘\0’的出现时机又是不确定的,通过前面的画图我们知道这块空间仅仅我们知道的只,有’a’,‘b’,‘c’,‘d’,‘e’,‘f’,这里值得注意的是strlen往后访问的时候其实他已经越界了。//&arr取出的是数组的地址,类型是 char(*)[6],数组的地址+1跳过的就是
一个
数组,即使是这样,但他还是
一个
地址,地址就是4/8。
C++反汇编学习笔记7——数组和
指针
以及他们的寻址
两年前写的,欢迎大家
吐槽
! 转载请注明出处。 1. 数组在函数内 先通过
一个
简单的例子来看一下数组和普通变量在初始化时的不同之处: 这是数组初始化: 42: int nArry[5] = {1, 2, 3, 4, 5}; 0042B758 mov dword ptr [ebp-1Ch],1 0042B75F mov dw
C语言篇 +
指针
进阶练习 + qsort模拟实现(回调函数思想) +
指针
和数组笔试题_bubblesrot函数(2)
/串的长度,但是这个数组
中
并未包含‘\0’,strlen还会继续往后查找,至于‘\0’的出现时机决定了strlen求出字符串的长度,而这个‘\0’的出现时机又是不确定的,通过前面的画图我们知道这块空间仅仅我们知道的只,有’a’,‘b’,‘c’,‘d’,‘e’,‘f’,这里值得注意的是strlen往后访问的时候其实他已经越界了。//&arr取出的是数组的地址,类型是 char(*)[6],数组的地址+1跳过的就是
一个
数组,即使是这样,但他还是
一个
地址,地址就是4/8。
c
中
怎样动态定义二维结构体数组_剖析c语言结构体的高级用法(一)
前言 在写这篇文章之前,说实话,自身对结构体的用法,只会两点——就是点访问式和
指针
式访问结构体内部成员。这对
一个
搞底层的工程师来讲,显然实在太low了。不妨读者看到这里,可以停下来思索一下,看看自己对c语言结构体掌握了多少。下面是我这几天结合自己的学习而总结的一...
C语言篇 +
指针
进阶练习 + qsort模拟实现(回调函数思想) +
指针
和数组笔试题_";qsort 请使用 ";&; "; 来创建指向成员的
指针
";
/串的长度,但是这个数组
中
并未包含‘\0’,strlen还会继续往后查找,至于‘\0’的出现时机决定了strlen求出字符串的长度,而这个‘\0’的出现时机又是不确定的,通过前面的画图我们知道这块空间仅仅我们知道的只,有’a’,‘b’,‘c’,‘d’,‘e’,‘f’,这里值得注意的是strlen往后访问的时候其实他已经越界了。//数组,他是
一个
数组的首元素的地址a[0][0],类型是int *,a[0] + 1 跳过的是
一个
整形,现在指向的是第二个元素a[0][1],但是他还是
一个
地址,4/8。
C语言
70,037
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章