社区
C语言
帖子详情
char表示范围的疑惑
yilin54
2010-06-22 03:37:26
char 的最大值是127=01111111(二进制),我理解。
为什么最小值是-128啊?
我觉得应该是11111111啊,第一位1表示负号,那应该是-127啊?
...全文
517
14
打赏
收藏
char表示范围的疑惑
char 的最大值是127=01111111(二进制),我理解。 为什么最小值是-128啊? 我觉得应该是11111111啊,第一位1表示负号,那应该是-127啊?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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语言问题
《你必须知道的495个C语言问题》是一份由Steve Summit原创,朱群英与孙云翻译的详尽指南,旨在解答C语言编程中常见的
疑惑
与挑战。该文档覆盖了从基本语法到高级概念的广泛主题,是C语言学习者与专业程序员不可或缺的...
char
与byte的区别
很多初学者(包括我,已经学了一年多java了)肯会对
char
和byte这两种数据类型有所
疑惑
,相互混淆,今天特地查了好多资料,对byte和
char
两种数据类型进行了总结和比较,先将结果与大家分享: byte 是字节数据类型...
java
char
字节 负数_
char
与byte的区别
很多初学者(包括我,已经学了一年多java了)肯会对
char
和byte这两种数据类型有所
疑惑
,相互混淆,今天特地查了好多资料,对byte和
char
两种数据类型进行了总结和比较,先将结果与大家分享:byte是字节数据类型,是有...
char
类型为什么是-128到127之我见
最近的学习对一个点一直有疑问,为什么
char
类型
范围
是-128到127而不是-127到127 综合看了网上一些老哥的解释后,我自己总结得是这样的: 127这个很容易理解,因为最高位
表示
符号位,那么正的
char
最大就是0111 ...
C语言
70,021
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章