字符型只占一个字节,只能存放0~255范围内的整数。(可参照ASCII表)
但TC里将字符变量的最高位作为符号位,也就是将字符处理成带符号的整数,它的取值范围是-128~127,所以用-128~-1的整数给字符变量赋值和128~255效果一样。
超过255则出现截断的现象,char c=256;的话,实际上c的值就是0;=257的话,c的值是1。 。。。截取了整型的低八位的缘故。
你想解决什么呢?想达到什么效果呢?字符型的取值范围就是如此,想存数值比较大的整型数的话还是用数值型吧。
============
ch='\x1'是把16进制数1附
给ch,也就是ASCII码是1的字符。
ASCII码是1的字符是控制字符SOH(标题开始信号)。
在网上看见有人问“ASCII码中:从0到32那些字符是什么意思?”
有一个人回答“那些是控制字符,在DOS下用来控制发声,打印机换行,退格等的,你在ASCII表中应该可以看到。
”
所以硬要按字符输出的话可能会出现一个乱码。
[展开]
当把一个大于255的整数赋给一个字符型变量时,该变量得到的是该数与256的余数。
在内存中,字符数据以ASCII码形式存放,存放方式与整型数据类似,因此两者可以通用。不会出错的。