有符号整数在内存中是有符号位的
说白了就是有一位数是专门标记正数还是负数的
所以他没有无符号整数那么大 因为牺牲了1位来做符号位
回到你的问题,你这个问题其实就是溢出了,
数字太大 把符号位给顶没了,内存的二进制 只有0和1 这么说不知道你能不能明白
比如
1101 0000
最开头的1就是符号位 后面的101 0000才是你自己的数据
如果你用 1101 0000 + 0100 0000 那么
就变成了 10001 0000
但是你这个数字最大只支持8个位 所以前面的 10001 0000 会把最左边的1丢弃 这就是数据已经溢出了 就变成了 0001 0000
我已经尽量用大白话去解释了。。这块还是需要去补下知识的。
说白了就是有一位数是专门标记正数还是负数的
所以他没有无符号整数那么大 因为牺牲了1位来做符号位
回到你的问题,你这个问题其实就是溢出了,
数字太大 把符号位给顶没了,内存的二进制 只有0和1 这么说不知道你能不能明白
比如
1101 0000
最开头的1就是符号位 后面的101 0000才是你自己的数据
如果你用 1101 0000 + 0100 0000 那么
就变成了 10001 0000
但是你这个数字最大只支持8个位 所以前面的 10001 0000 会把最左边的1丢弃 这就是数据已经溢出了 就变成了 0001 0000
我已经尽量用大白话去解释了。。这块还是需要去补下知识的。


看图便知,超出maxValue自动跳回minValue,其实和进制没啥关系,就是C#的特性,自己了解一下check和uncheck语句,因为我也不会

