c++求模怎么求?
在c++中,如果把-1赋给8位的unsignchar,那么结果的255,因为255是-1对256求模后的值。-1对256求模是什么意思啊?结果255是怎么算出来的呢?...
在c++中,如果把-1赋给8位的unsign char,那么结果的255,因为255是-1对256求模后的值。
-1对256求模是什么意思啊?结果255是怎么算出来的呢? 展开
-1对256求模是什么意思啊?结果255是怎么算出来的呢? 展开
4个回答
展开全部
8位char的值是00000000,最后一位减去-1后,变为1并上位借1,循环下去,结果就是11111111,八个1,==255;
相反11111111+1=00000000
相反11111111+1=00000000
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
unsign char是不能表示负数的。-1是作为整型的数值来截断之后传给unsign char的,你看看-1对应整数的二进制就知道了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2018-01-29
展开全部
c99 "趋零截断" 后 第1个运算对象是负 结果就是负 是正就是正 跟除数没有任何关系
至于 255得来
如果你想了解从-1到255经历了什么过程,请自行查阅其他相关文档,以下为个人理解,希望能帮助你简单理解
你可以把每个 数字类型的取值范围理解成 一个时钟,当指针转到范围两端的时候,自动回到另外一端从新开始,无论是逆时针还是顺时针
假如 unsigned char = 时钟 取值范围 为 0-12
我令 时钟 = -1 那么按照之前说的道理 那么就应该是 12 ,我令时钟为13 那么就是0
以此类推, uchar 取值范围为 0-255 , 你令 uchar= -1 那么就回到另外一端 即为255,多余的补上即可
即 -1 - 255 ,-2 - 254 , -3 - 253, 256 - 0 ,257 - 1, 258 - 2,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询