c++求模怎么求?

在c++中,如果把-1赋给8位的unsignchar,那么结果的255,因为255是-1对256求模后的值。-1对256求模是什么意思啊?结果255是怎么算出来的呢?... 在c++中,如果把-1赋给8位的unsign char,那么结果的255,因为255是-1对256求模后的值。
-1对256求模是什么意思啊?结果255是怎么算出来的呢?
展开
 我来答
linzjay
推荐于2018-01-29 · TA获得超过257个赞
知道小有建树答主
回答量:286
采纳率:0%
帮助的人:250万
展开全部
对一个数求模相当于处于这个数剩下的余数,且取值范围为[0,除数]
比如4/3=1...1,所以4%3=1
比如-4/3=-2...2,所以-4%3=2
同理,你这里-1/256=-1...255,所以-1%256=255,这个应该挺好理解的,你需要记住的就是求模实际上是求余数,而余数都是有范围的,当除数是正的时候,余数也是正的
孟戈大师
2013-08-20 · 超过53用户采纳过TA的回答
知道小有建树答主
回答量:173
采纳率:100%
帮助的人:87.6万
展开全部
8位char的值是00000000,最后一位减去-1后,变为1并上位借1,循环下去,结果就是11111111,八个1,==255;
相反11111111+1=00000000
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sudai1314
2013-08-20
知道答主
回答量:5
采纳率:0%
帮助的人:7140
展开全部
unsign char是不能表示负数的。-1是作为整型的数值来截断之后传给unsign char的,你看看-1对应整数的二进制就知道了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2018-01-29
展开全部

c99 "趋零截断" 后 第1个运算对象是负 结果就是负 是正就是正 跟除数没有任何关系

至于 255得来

如果你想了解从-1到255经历了什么过程,请自行查阅其他相关文档,以下为个人理解,希望能帮助你简单理解

  1. 你可以把每个 数字类型的取值范围理解成 一个时钟,当指针转到范围两端的时候,自动回到另外一端从新开始,无论是逆时针还是顺时针

  2. 假如 unsigned char = 时钟 取值范围 为 0-12  

  3. 我令 时钟 = -1 那么按照之前说的道理 那么就应该是 12 ,我令时钟为13 那么就是0

  4. 以此类推, uchar 取值范围为 0-255  , 你令 uchar= -1 那么就回到另外一端 即为255,多余的补上即可

  5. 即 -1 - 255 ,-2 - 254 , -3 - 253, 256 - 0 ,257 - 1, 258 - 2,

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

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式