社区
C语言
帖子详情
char表示范围的疑惑
yilin54
2010-06-22 03:37:26
char 的最大值是127=01111111(二进制),我理解。
为什么最小值是-128啊?
我觉得应该是11111111啊,第一位1表示负号,那应该是-127啊?
...全文
512
14
打赏
收藏
char表示范围的疑惑
char 的最大值是127=01111111(二进制),我理解。 为什么最小值是-128啊? 我觉得应该是11111111啊,第一位1表示负号,那应该是-127啊?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
文君
2011-11-14
打赏
举报
回复
注意正零和负零的区别。
yilin54
2010-06-23
打赏
举报
回复
我已经意会了。谢谢各位~
liutengfeigo
2010-06-22
打赏
举报
回复
没去认真研究过。。学习了
sbdx86
2010-06-22
打赏
举报
回复
我觉得:负数在内存中用补码表示,-1 的原码10000001 反码是11111110 补码是11111111.
-127的原码11111111 反码是10000000 补码是10000001
这样 10000000就用来表示-128了.
lixuyu
2010-06-22
打赏
举报
回复
1、这是在补码表示法、char是有符号数的情况下;
2、注意,最大值并不一定是127。char并不一定是有符号的,C标准可没有这么规定,char可能是按照signed char处理,也可能是按照unsigned char处理,不同的编译器、不同的编译选项处理不同。
zjf30366
2010-06-22
打赏
举报
回复
[Quote=引用楼主 yilin54 的回复:]
char 的最大值是127=01111111(二进制),我理解。
为什么最小值是-128啊?
我觉得应该是11111111啊,第一位1表示负号,那应该是-127啊?
[/Quote]
http://blog.csdn.net/ylqmf/archive/2009/12/18/5031807.aspx
http://blog.csdn.net/ylqmf/archive/2009/12/18/5031788.aspx
itegel84
2010-06-22
打赏
举报
回复
有符号时用补码表示的就是-128~127
无符号时...
wzyzb
2010-06-22
打赏
举报
回复
顶 下
zjf30366
2010-06-22
打赏
举报
回复
这个原码和反码是一样的[Quote=引用 3 楼 yilin54 的回复:]
我想问下:1000 0000表示的是什么啊?是原码还是什么码啊?
引用 1 楼 baihacker 的回复:
1.char的需求是能装下标准的ascii字符,所以-128到127或者0到255都是可能的。
2.1111 1111按第一位负号,后面的作为绝对值的话,这是原码,但是计算机中存的是补码。
所以是1000 0000
取反得到0111 1111
加上1得到1000 000……
[/Quote]
wdy0725
2010-06-22
打赏
举报
回复
因为最高位是符号位,那么 00000000 与 10000000 是不是都是0呢?2楼讲的很清楚了。
一句话,在表示正数时,一个让给了0.
yidasoft
2010-06-22
打赏
举报
回复
10000是补码啊
00000是原码的0
yilin54
2010-06-22
打赏
举报
回复
我想问下:1000 0000表示的是什么啊?是原码还是什么码啊?
[Quote=引用 1 楼 baihacker 的回复:]
1.char的需求是能装下标准的ascii字符,所以-128到127或者0到255都是可能的。
2.1111 1111按第一位负号,后面的作为绝对值的话,这是原码,但是计算机中存的是补码。
所以是1000 0000
取反得到0111 1111
加上1得到1000 0000
其绝对值是128也就是说在内存中1000 0000表示-128
[/Quote]
baihacker
2010-06-22
打赏
举报
回复
ascii字符应该改成:具体实现中的基本字符。
baihacker
2010-06-22
打赏
举报
回复
1.char的需求是能装下标准的ascii字符,所以-128到127或者0到255都是可能的。
2.1111 1111按第一位负号,后面的作为绝对值的话,这是原码,但是计算机中存的是补码。
所以是1000 0000
取反得到0111 1111
加上1得到1000 0000
其绝对值是128也就是说在内存中1000 0000表示-128
《你必须知道的495个C语言问题》
5.14 为什么有那么多关于空指针的
疑惑
?为什么这些问题如此频繁地出现? 60 5.15 有没有什么简单点儿的办法理解所有这些与空指针有关的东西呢? 60 5.16 考虑到有关空指针的所有这些困惑,要求它们的内部
表示
都...
你必须知道的495个C语言问题
5.14 为什么有那么多关于空指针的
疑惑
?为什么这些问题如此频繁地出现? 5.15 有没有什么简单点儿的办法理解所有这些与空指针有关的东西呢? 5.16 考虑到有关空指针的所有这些困惑,要求它们的内部
表示
都必须为...
MySQL 数据类型和运算符
============================= # 数据类型 整数类型:五种 TINY SMALL MEDIUM INT BIG 浮点和定点小数类型:三种 FLOAT DOUBLE DECIMAL 日期与时间数据类型:五种 YEAR -1 字符串类型:二种
CHAR
(M) VAR
CHAR
(M) -1 ...
C语言FAQ 常见问题列表
o 6.11 为什么有那么多关于空指针的
疑惑
?为什么这些问题如此经常地出现? o 6.12 我很困惑。我就是不能理解这些空指针一类的东西。 o 6.13 考虑到有关空指针的所有这些困惑, 难道把要求它们内部表达都必须为 0 ...
你必须知道的495个C语言问题(PDF)
老资源。 目录 1 声明和初始化1 1.1 我如何决定使用那种整数类型? . . . .... ....5.11 为什么有那么多关于空指针的
疑惑
?为什么这些问题如此经常地 出现? . . . . . . . . . . . . . . . . . . . ...
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章