`

c语言类型转换注意总结

    博客分类:
  • c
阅读更多

今天看了下计算机笔试相关的题,对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时将从最后一个字节截断,去最后一个字节作为结果
	*/
}

 

0
0
分享到:
评论

相关推荐

    计算机二级C语言知识点总结

    十四、强制类型转换 * 一定是 (int)a 不是 int(a),注意类型上一定有括号的 * 注意(int)(a+b)和(int)a+b 的区别 十五、表达式 * 是表达式就一定有数值 * 赋值表达式:表达式数值是最左边的数值,a=b=5;...

    计算机等级考试二级C语言常见知识点总结.pdf

    强制类型转换:一定是(int)a不是int(a),注意类型上一定有括号的。逗号运算符的级别最低。 四、表达式 表达式是有数值的。赋值表达式:表达式数值是最左边的数值。自加、自减表达式:假设a=5,++a(是为6),a++...

    c语言你知识点总结

    3、强制类型转换: 一定是 (int)a 不是 int(a),注意类型上一定有括号的。 注意(int)(a+b) 和(int)a+b 的区别。 前是把a+b转型,后是把a转型再加b。 4、三种取整丢小数的情况: 1) int a =1.6; 2) (int...

    计算机二级C语言知识点总结.doc

    本文档总结了计算机二级考试C语言知识点,涵盖了程序结构、数据类型、位运算、算术运算符、强制类型转换、表达式、逗号运算符、转义字符等多方面的知识点。 一、程序结构 * 程序结构有三种:顺序结构、循环结构...

    教案KEILMDK和STM32的数据类型之入门篇.pdf

    教案KEILMDK和STM32的数据类型之入门篇 ...本资源提供了KEILMDK和STM32的数据类型入门篇,涵盖了KEILMDK和STM32的数据类型定义、变量类型、数据类型转换等知识点,并且对C语言中的种类数据进行了总结。

    C_C++问题总结

    3.12 两种常用的实现隐式类类型转换的方式是什么?如何避免隐式类 型转换?3.13 STL中的vector:增减元素对迭代器的影响 3.14 STL中排序算法的实现 3.15 C和C++的区别 3.16 内存对齐 3.17 C++转换机制(static_cast...

    Visual C++ 2010入门经典(第5版)--源代码及课后练习答案

    2.6.1 赋值语句中的类型转换 65 2.6.2 显式类型转换 65 2.6.3 老式的类型强制转换 66 2.7 AUTO关键字 66 2.8 查看类型 67 2.9 按位运算符 67 2.9.1 按位AND运算符 68 2.9.2 按位OR运算符 69 2.9.3 按位EOR...

    整理后java开发全套达内学习笔记(含练习)

    注意:默认类型转换(自动类型提升)会丢失精度,但只有三种情况: int&gt;float; long&gt;float; long&gt;double. 看一下他们的有效位就明白。 二进制是无法精确的表示 0.1 的。 进行高精度运算可以用java.math包中...

    01.文都网校2023考研计算机基础课程内部辅导讲义.pdf

    * 变量声明和初始化、数据类型转换、运算符优先级、控制结构的使用等 * 函数声明和调用、函数参数和返回值、函数的递归调用等 数组 * 数组的定义和初始化、数组的索引和访问、数组的操作等 * 数组的遍历和搜索、...

    传智播客扫地僧视频讲义源码

    04_类型转换_dynamic_cast和reinterpret_cast_传智扫地僧 05_类型转换_const_cast 06_异常的基本语法 07_异常机制基本思想梳理 08_栈解旋unwinding 09_异常接口声明 10_异常类型_异常变量的生命周期上 11_异常类型_...

    华为编程开发规范与案例

    6、注意数据类型的匹配 第18页 【案例1.6.1】 第18页 【案例1.6.2】 第18页 7、用于控制条件转移的表达式及取值范围是否书写正确 第20页 【案例1.7.1】 第20页 【案例1.7.2】 第21页 【案例1.7.3】 第22页 8、条件...

    Tcl_TK编程权威指南pdf

    注意事项 第15章 国际化(internationalization) 字符集与编码 消息目录 第16章 事件驱动的编程 tcl事件循环 after命令 fileevent命令 vwait命令 fconfigure命令 第17章 套接字编程 客户端套接字 ...

    C# Winform数据库应用设计(附开发案例

    333常用类型转换方法… 7 任务实训部分 77 1:方法的使用 2:从邮件地址提取用广名 80 3:网址类型分析 81 4:字符串转换 82 巩固练习. 84 第4章指导学习:阶段总结 86 知识总结 翻着 .:::a:a:.:::a:B:a:::::..aa:::.:.aa...

    二叉排序树与平衡二叉树的实现

    注意:新插入的结点总是叶子结点。 1.2.3 中序遍历二叉树 中序遍历二叉树算法的框架是: 若二叉树为空,则空操作; 否则(1)中序遍历左子树(L); (2)访问根结点(V); (3)中序遍历右子树(R)。 中序遍历...

    windows驱动开发技术详解-part2

    这是书的光盘。共分为两个部分,这是第一部分。 本书由浅入深、循序渐进地... 本章总结了在内核模式下的四种等待方法,读者可以利用这些方法灵活地用在自己的驱动程序中。最 后本章还介绍了如何对IRP的超时情况进行...

    Windows驱动开发技术详解的光盘-part1

     本章总结了在内核模式下的四种等待方法,读者可以利用这些方法灵活地用在自己的驱动程序中。最后本章还介绍了如何对IRP的超时情况进行处理。  10.1 定时器实现方式一  10.1.1 I/O定时器  10.1.2 示例代码  ...

    精通正则表达式~~~

    消除C语言注释匹配的循环... 272 流畅运转的表达式... 277 引导匹配的工具... 277 引导良好的正则表达式速度很快... 279 完工... 281 总结:开动你的大脑... 281 第7章:Perl 283 作为语言组件的正则表达式....

    寒江独钓-Windows内核安全编程(高清完整版).part1

    阅读本书,需要读者有C语言、数据结构、操作系统和计算机网络的基础知识。 目录: 封面 -25 扉页 -24 内容简介 -23 序 -22 关于本书作者和贡献者 -20 前言 -18 阅读注意 -16 目录 -12 正文 1 第1章 内核上机指导 1...

    寒江独钓-Windows内核安全编程(高清完整版).part7

    阅读本书,需要读者有C语言、数据结构、操作系统和计算机网络的基础知识。 目录: 封面 -25 扉页 -24 内容简介 -23 序 -22 关于本书作者和贡献者 -20 前言 -18 阅读注意 -16 目录 -12 正文 1 第1章 内核上机指导 1...

Global site tag (gtag.js) - Google Analytics