标签:符号 程序设计 截断 有符号 开始 无符号 sizeof pre 整数
扩展:
char src;
int dst;
dst = (char)src;
src有符号,扩展位=符号位,符号位0扩展位也是0,符号位1扩展位也是1
src无符号,扩展位=0
截断:
int src;
char dst;
dst =(char)src;
从低字节开始,截取sizeof(dst)个字节的十六进制数值
整型转换,只与十六进制数值有关系
int i = -1;
整数-1
0xFFFFFFFF十六进制数值
扩展:
int to unsigned int
#include <stdio.h> #include <stdlib.h> int main() { int int_num = -1; unsigned int uint_num = (unsigned int)int_num;//强制转换,显式转换 printf("%x %d\n", int_num, int_num); printf("%x %u\n", uint_num, uint_num); system("pause"); return 0; }
ffffffff -1
ffffffff 4294967295
请按任意键继续. . .
char to int
char to unsigned int
#include <stdio.h> #include <stdlib.h> int main() { char char_num = -1; int int_num = (int)char_num; unsigned int uint_num = (unsigned int)char_num; printf("%hhx %hhd\n", char_num, char_num); printf("%x %d\n", int_num, int_num); printf("%x %u\n", uint_num, uint_num); system("pause"); return 0; }
ff -1
ffffffff -1
ffffffff 4294967295
请按任意键继续. . .
char to int
char to unsigned int
#include <stdio.h> #include <stdlib.h> int main() { char char_num = 1; int int_num = (int)char_num; unsigned int uint_num = (unsigned int)char_num; printf("%hhx %hhd\n", char_num, char_num); printf("%x %d\n", int_num, int_num); printf("%x %u\n", uint_num, uint_num); system("pause"); return 0; }
1 1
1 1
1 1
请按任意键继续. . .
unsigned char to int
unsigned char to unsigned int
#include <stdio.h> #include <stdlib.h> int main() { unsigned char char_num = 0xFF; int int_num = (int)char_num; unsigned int uint_num = (unsigned int)char_num; printf("%hhx %hhd\n", char_num, char_num); printf("%x %d\n", int_num, int_num); printf("%x %u\n", uint_num, uint_num); system("pause"); return 0; }
ff -1
ff 255
ff 255
请按任意键继续. . .
截断:
#include <stdio.h> #include <stdlib.h> int main() { int int_num = -0x12345678; short short_num = (short)int_num; unsigned short unshort_num = (unsigned short)int_num; printf("int %x %d\n", int_num, int_num); printf("short %hx %hd\n", short_num, short_num); printf("unshort %hx %hu\n", unshort_num, unshort_num); system("pause"); return 0; }
int edcba988 -305419896
short a988 -22136
unshort a988 43400
请按任意键继续. . .
网易云课堂_艾叔:零基础一站式C语言|C程序设计精讲_章节5整型_课时41整型转换、扩展与截断
标签:符号 程序设计 截断 有符号 开始 无符号 sizeof pre 整数
原文地址:http://www.cnblogs.com/denggelin/p/6158273.html