十进制数256二进制表示100000000char只有1个字节,8位,所以最高位的1被舍弃,所以c的值为00000000,十进制表示0然后把c的值赋给a,所以a值为0
您的charc=256;256用二进制表示的话是100000000,也就是低8位全部为0。而char类型的c只能保存8bit的数据(也就是低8位)所以实际上c=0。同理,255的二进制表达方式为11111111,因为char类型是有符号的类型(其对应的...
256整数的二进制表示是0000000100000000,转成char会被截断,只保留低8位,也就是0;
include<stdio.h>voidmain(){charc=256;inta=c;printf("%d\n",a);}char只有1个位元组(BYTE),也就是8个位(bit)您的charc=256;256用二进位制表示的话是100000000,也就是低8位全部为0...
你的写法有问题...charele[200];s=ele;ele为函数内部定义的定长数组,等函数过程结束,对应的内存就会被自动释放,所以这样写是不对的加了printf也不对,只是printf可能延迟了ele的释放...
charstrArray[N][256];char*str[N];char*temp;inti,n;printf("请输入字符串:\n");for(i=0;i<N;i++){gets(strArray[i]);if(strcmp(strArray[i],"")==0)//空格串作为字符串输入结束符{break;}st...
char类型最大值是256也就是111111118bit位你把2赋值给它前面的256相当于100000000直接就被砍掉了于是就剩下后面的33了
答案是0没错,但不是因为溢出对于char来说,默认为有符号数,范围为-128~127当赋值charc=255这种方式本身是错误的写法系统在操作的时候会按照c=0xff赋值,这也是整型赋值的一致方式而对于0xff的存储,对于char这种...
c为char,8位,一字节,c=a后c十进制为:20b为int,32位,4字节,b=c后b十进制为:00000020其中c只占一字节,a为四字节,当c=a的时候,把多余的3位截断,只取最低位(有些系统取最高位),...
a=0,其实你可以给char多大的值都行,结果a的值都会是c%256,这是因为char类型就是一个字符,八位,超过八位的部分不会截取给char,只会截取最低的八位部分给它,这样够详细吧...