c语言类型转换注意总结
程序员文章站
2022-04-18 13:37:40
...
今天看了下计算机笔试相关的题,对c语言类型转换做了一点点实验,解决了以前的迷茫!
1.signed和unsigned的区别
对于这个区别我想说的是,无论是多少字节的类型,我认为只看最高位是1还是0。
如果是1的话,signed向unsigned转换时将转化为无符号型数据(即无负数)将成为正数,
如果是0的话,signed向unsigned转化时将不改变原有正负性。
unsigned向signed转化时同理。
2.字节长度大的与字节长度小的之间能的转化
如:char 一个字节向int (windows 32位机器)转化时将用其最高位来填充int型的高位3个字节
相反,将截取最后一个字节作为转化后的结果。
其他,int与float,原理一样
附上我的测试代码:
#include<stdio.h> int main(){ signed char a=0xe0; unsigned int b = a; unsigned char c = a; int d = 2147483647; char e = d; printf("a.size = %d ,b.szie = %d ,c.size = %d \n",sizeof(a),sizeof(b),sizeof(c)); printf("a = %d, b = %u , c = %d \n",a,b,c);//2^32-2^5-1 printf("d = %d (int) , e = %d (char) ",d,e); /* 在将a 向unsigned int型转化时, 由于signed char是一个字节的,将用其高位进行填充b的高位的3个字节 结果为11111111 11111111 11111111 11100001 将 a 向unsigned char转化时高位的符号位将做位数据为出现结果为 11100001的整型结果即:2^8-1-2^5+1 = 224 d为01111111 11111111 11111111 11111111转化为char时将从最后一个字节截断,去最后一个字节作为结果 */ }
上一篇: oracle中将字符串转换为i数值类型
下一篇: Spring自动类型转换
推荐阅读
-
【转载】C#中使用double.TryParse方法将字符串转换为double类型
-
总结关于页面语言类注意点
-
为什么facebook的hiphop要把php转换成了C++而不是把php改成编译型的语言,直接执行编译后的文件不是更快么?
-
总结关于特定类型查询注意点
-
c语言定义函数和声明函数_C语言中用户定义函数的类型
-
C语言定义结构体时注意成员变量的类型和声明顺序
-
JavaEE基础day02 1.定义Java中的变量 四类八种 2.变量定义和使用的注意事项 3.数据类型的转换、强制数据类型转换4.算数运算符、比较运算符、逻辑运算符、赋值运算符、三元运算符
-
21.C++- "++"操作符重载、隐式转换之explicit关键字、类的类型转换函数
-
关于C语言中return用法的一些总结
-
C++中四种类型转换的关键字介绍及实例讲解