char类型到底是有符号还是无符号
2018-01-22 17:42
204 查看
根据c标准,char类型到底是有符号整数类型还是无符号整数类型,这取决于c实现,也就是c编译器的作者的想法:(
那么,如何快速的编写一个检测程序,查看当前编译器如何对char进行定义?
我的机子输出:
关键语句: (char)-1>0?"un":"" 含义:将-1强制转换为char类型,如果是无符号整形,那么表达式(char)-1>0肯定为真,(char)-1变为无符号整数的最大值。如果是有符号整数,显然,-1是小于0的,这样,根据结果就得到了答案。
那么,如何快速的编写一个检测程序,查看当前编译器如何对char进行定义?
#include <stdio.h> int main(){ printf("Type char is %ssigned char.\n",(char)-1>0?"un":""); return 0; }
我的机子输出:
[root@noi ~]# ./t1 Type char is signed char.
关键语句: (char)-1>0?"un":"" 含义:将-1强制转换为char类型,如果是无符号整形,那么表达式(char)-1>0肯定为真,(char)-1变为无符号整数的最大值。如果是有符号整数,显然,-1是小于0的,这样,根据结果就得到了答案。
相关文章推荐
- 关于C语言的char类型是有符号还是无符号
- java中char类型的默认值是 '\u0000' 吗?是空字符还是空格?
- MySQL数据类型char与varchar中数字代表的究竟是字节数还是字符数?
- 【1】ptr = malloc(0*sizeof(char))【2】关于typedef的用法总结【3】关于有符号数、无符号数和数据类型的总结
- char类型数据向右移位时符号位问题
- C#中string类型到底是值类型还是引用类型
- Delphi越来越多自动释放的类型,到底是简单还是复杂了?
- 【1】ptr = malloc(0*sizeof(char))【2】关于typedef的用法总结【3】关于有符号数、无符号数和数据类型的总结 .
- 数据库中存储日期的字段类型到底应该用varchar还是datetime
- 用guid类型的字段作主键,用char(36)好还是用uniqueidentifier好?
- char类型是否有符号与不同编译环境相关
- ARM下char类型符号问题
- 数据库中存储日期的字段类型到底应该用varchar还是datetime
- 数据库中存储日期的字段类型到底应该用varchar还是datetime
- C的无符号数据类型int,short,byte 转为 Java对应的数据long,char,short
- 关于char强制转换成int到底是用0还是用1补位的猜想与检验
- char类型默认是signed还是unsigned
- 带符号的char类型取值范围为什么是-128——127
- char代表有符号还是无符号?
- C#引用类型转换,到底使用is,as还是显式强转?