int a=(byte)128;为什么a的值是-128?
来源:百度知道 编辑:UC知道 时间:2024/07/07 03:48:46
我知道这是数字溢出,但为什么值是-128而不是其他的数?
byte的表示范围是-128到+127,128的二进制表示是0000000010000000,若将其强制转换为byte型,则只留下10000000,即-128
因为byte最大是127,根据计算机计算原理,如果超出,他会返回到一个最小的值上去,即:-128
这个就好像是一个数字环境,数字环的结构式这样的:
-128,-127,-126,......0,1,2,3,......126,127,-128,-127,-126
大致意思就是这样
楼主采纳我的答案吧..哈哈哈
128第一位是0,加个BYTE 一位,第一位就变成1
1是负的,,,,就变成-128了
补位
已知int a=1;int b;b=(++a)+(++a)+(++a);为什么b=10?
int a; a+=a-=a+a 结果是多少,为什么?
请问:执行int a=4; (++a)+=a;之后,a值是多少?为什么??
int x=(byte)128;输出变量x的值是多少?为什么?
void a(int a,int b=0)的含义?
int a=5,b; b=++a*--a;
int a=6;a+=a-=a*a;printf(“%d”,a);输出结果?
fun1(int a,int b)
int a,public int a,private int a,怎么区别?
C语言中为什么int a=-1 printf("%o",a)等于177777