C语言中char变量详解
来源:互联网 发布:广数英制螺纹怎么编程 编辑:程序博客网 时间:2024/05/18 03:44
http://www.cppblog.com/zenliang/articles/132850.html
char是C/C++整型数据中比较古怪的一个,其它的如int/long/short等不指定signed/unsigned时都默认是signed。虽然char在标准中是unsigned(因为char类型提出的初衷是用来表示ascii码,ascii码的范围是0~127),但实际情况中究竟是signed还是unsigned取决于编译器。
可通过下面程序判断编译器的默认char类型:
2{
3 char c=0xFF;
4 if(c==-1)
5 printf("signed");
6 elseif(c==255)
7 printf("unsigned");
8 else
9 printf("error!");
10}
当你不确定编译器的默认char类型时,就用显示声明:signed char和unsigned char;
在C/C++语言中,char变量为一个字节,8位,signed char表示的范围:-128~127【-128在内存中的二进制表示为1000 0000,127在内存中的表示为0111 1111】;unsign char表示的范围:0000 0000~1111 1111,即0~255;
注意:整数在内存中是以补码存取的,正数的补码:等于自己,负数的补码:取反加1,例如:127在内存中表示为0111 1111, -127在内存中表示为~(0111 1111)+1=1000 0001; 假定某内存单元p的内容是1111 1111,那么它一定是255吗?实际上取决于你的代码是要把它看成有符号还是无符号数,如果是无符号则表示255,如果是有符号则表示-1【对于有符号数,最高位为符号位,1表示负,0表示正】:
signed char c=*p; //c=-1
unsigned char c=*p;//c=255
这也解释了上面这段代码能判断编译器默认char类型。
- C语言中char变量详解
- C语言中char变量详解
- C语言中char变量详解
- C语言中char * 与char[]详解
- C语言中char * 与char[]详解
- c语言中static变量详解
- C语言中static变量详解
- C语言中static变量详解
- C语言中static变量详解
- C语言中static变量详解
- C语言中static变量详解
- C语言中static变量详解
- C语言中static变量详解
- C语言中static变量详解
- C语言中static变量详解
- C语言中int main(int argc,char* argv[])详解
- C语言变量详解
- C语言-变量详解
- windows UAC功能(用户帐号控制功能)设置
- github使用
- python发送邮件方法
- MCU上使用系统的理解
- 第十四周 函数版 冒泡排序
- C语言中char变量详解
- there is no soundcard 问题解决
- 关于ubuntu装 不上navicate问题的解决方法记录
- 合适使用结构体
- C# WinForm TextBox猜想输入和历史记录输入(源码)
- N进制数转换为十进制数
- STL 整理(map、set、vector、list、stack、queue、deque、priority_queue)
- 黑马程序员——银行业务调度系统
- 浅谈 struts2+ajax