char型注意的问题
来源:互联网 发布:河南知春商贸有限公司 编辑:程序博客网 时间:2024/06/08 17:57
定义: char是C/C++整型数据中比较古怪的一个,其它的如int/long/short等不指定signed/unsigned时都默认是signed,
转换: int/unsigned int变量赋值给 unsigned char变量是会发生字节截断(9位和高于9位的将被程序自动丢弃)
储存:unsigned char在计算机中使用补码存储,
char 型的值 [-128, 127]:
unsigned char 型的值 [0, 255]
--------------------------------
例子:
char a = 127;
char b = 128;
char c = 129;
char d = 255;
char e = 256;
char f = 257;
char g = -10;
printf("a = %d, b = %d, c = %d, d = %d, e = %d, f = %d\n", a, b, c, d, e, f);
printf("g = %d\n", g);
----------------------------
unsigned char w = 255;
unsigned char x = 256;
unsigned char y = 257;
unsigned char z = 258;
unsigned char zz = -10;
printf("w = %d, x = %d, y = %d, z = %d\n", w, x, y, z);
printf("zz = %d\n");
输出结果: w = 255, x = 0, y = 1, z = 2
zz = 246
但char在标准中是unsigned,编译器可以实现为带符号的,也可以实现为不带符号的。
转换: int/unsigned int变量赋值给 unsigned char变量是会发生字节截断(9位和高于9位的将被程序自动丢弃)
如:unsigned int a = 0xFFFFFFF7;
unsigned char b = (unsigned char)a;
此时b的值为 0xF7;
储存:unsigned char在计算机中使用补码存储,
例如:unsigned char a = 0xF7;
a在计算机中存储的方式为:10001001
char 型的值 [-128, 127]:
unsigned char 型的值 [0, 255]
--------------------------------
例子:
char a = 127;
char b = 128;
char c = 129;
char d = 255;
char e = 256;
char f = 257;
char g = -10;
printf("a = %d, b = %d, c = %d, d = %d, e = %d, f = %d\n", a, b, c, d, e, f);
printf("g = %d\n", g);
输出结果: a = 127, b = -128, c = -127, d = -1, e = 0, f = 1
g = -10
----------------------------
unsigned char w = 255;
unsigned char x = 256;
unsigned char y = 257;
unsigned char z = 258;
unsigned char zz = -10;
printf("w = %d, x = %d, y = %d, z = %d\n", w, x, y, z);
printf("zz = %d\n");
输出结果: w = 255, x = 0, y = 1, z = 2
zz = 246
0 0
- char型注意的问题
- C++中CString和Char*转换需注意的问题!!!
- QString转换为char*需要注意的问题
- char数组和char指针应该注意的
- int 型 char 型的转换问题
- char *遇到的问题
- const char*的问题
- char* 和 char[]初始化的问题
- C++ char[] 和 char* 引发的问题
- char *p和char p[]的问题
- char[] char数组 char*返回值的问题
- const char*, char const*, char*const的区别问题
- char*,const char*,char[],string之间的转换问题。
- java泛型应该注意的问题。
- parseInt的注意问题
- xml注意的问题
- 几点要注意的问题
- Hibernate 注意的问题....
- vs2012编译QT
- JQuery+JSON+Struts2实现
- 好久没来了
- java.lang.Runtime类
- 关于 Xcode 中 NSAssert() 的用法 ,以及 assert() 与 NDEBUG
- char型注意的问题
- 逆向2048(win8)隐私策略
- Mongo连接池操纵MongoOptions
- QlikView Study Note
- 代码之路开启!干杯^_^
- C++Primer 第五版 3.类设计者的工具
- 关于controller的一些用法
- java多线程之路之线程属性—Core Java学习
- 全过程演示MyEclipse8.5中用JDBC连接Sql Server 2008(二)