今天看了下计算机笔试相关的题,对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时将从最后一个字节截断,去最后一个字节作为结果 */ }
相关推荐
C语言中强制数据类型转换的总结 C语言中强制数据类型转换是非常重要的,需要逐步进行,有些是自然的转型,有些需要根据需要强制转换。下面我们将详细讨论数据类型转换的规则和机制。 首先,需要了解数据类型转换的...
本文将基于给定的文件信息“C语言实现数值类型转换源代码”,深入探讨C语言中数值类型转换的相关知识点,包括基本概念、常见类型转换方法以及实际应用中的注意事项。 ### 一、数值类型转换的基本概念 在C语言中,...
总结,C语言中的数据类型转换是一项基本操作,它涉及隐式和显式的转换方式,以及各种数据类型的兼容性、指针转换和枚举转换等方面。理解并熟练掌握这些转换规则,对于编写高效、安全的C语言代码至关重要。在实际编程...
需要注意的是,从较高类型向较低类型转换时可能会发生精度损失问题,例如将浮点数强制转换为整型可能会丢失小数部分。 当涉及超出数据类型最大值的赋值操作时,可能会产生溢出。例如,将`***`赋值给`int`类型变量时...
4. **数据类型转换**:数据类型转换分为自动转换和强制类型转换。自动转换在不同类型的数据进行运算时自动发生,而强制类型转换则需要程序员明确指定,例如 `(int)`用于将其他类型转换为整型。 5. **整型**:C语言...
综上所述,C语言指针的知识点涵盖了指针声明、初始化、运算、与数组和函数的关系、字符串处理、内存管理、类型转换以及高级用法等。掌握这些知识点,有助于编写高效、复杂的C程序。在学习指针时,务必注意指针的类型...
以下是对C语言常用库函数的详细知识点总结: 一、标准定义 标准定义涉及的是C语言中用于数据类型和宏定义的基本定义。其中包括: - `size_t`:使用`sizeof`运算符时得到的结果类型,通常是一个无符号整数类型。 - `...
9. **强制类型转换**:不改变变量本身的值,只改变当前表达式的值。 10. **前置与后置递增/递减运算符**:`++`、`--`在变量后面表示递增/递减发生在下次使用时;在变量前面表示立即发生。 11. **复合赋值运算符**:...
本知识点总结将围绕C语言的基础知识、结构、数据类型、运算符、预处理和程序设计基础等方面展开。 首先,C语言程序的基本结构包括顺序结构、选择结构(分支结构)和循环结构。顺序结构就是程序按照编写顺序依次执行...
【C语言培训学习资料总结】 C语言是一种基础的编程语言,尤其适合初学者入门。学习C语言时,首先要了解C源程序的框架。一个标准的C程序通常包括编译预处理(例如包含头文件),主函数`main()`,以及可能的其他辅助...
本资源摘要信息将对C语言的基础知识进行总结,涵盖了计算机基础知识、C语言基础知识、标识符、整数与实数、算术表达式、赋值表达式、复合赋值表达式、自加表达式、逗号表达式、强制类型转换、字符等方面的知识点。...
- 关键字不可作为用户标识符,例如`if`(注意区分大小写)。 - 预定义标识符如`#define`、`scanf`、`printf`等,它们也可以被用作用户标识符。 - 用户标识符应避免与关键字冲突,并符合命名规范。 #### 第四节 进制...
根据给定的信息,我们可以将这份C语言新手总结笔记的关键知识点归纳如下: ### 一、顺序结构 顺序结构是最基本的程序结构,按照代码书写的顺序依次执行。 #### 1. 大写字母转换为小写字母 - **原理**:ASCII码表...
### C语言知识总结学习指导 #### 一、数据类型与变量命名规则 1. **数据类型**:C语言支持多种数据类型,包括整型(int)、字符型(char)、浮点型(float/double)等。每种数据类型都有其特定的用途和存储空间大小。 ...
十、强制类型转换 * 一定是(int)a不是int(a),注意类型上一定有括号的 * 注意(int)(a+b)和(int)a+b的区别 十一、表达式 * 赋值表达式:表达式数值是最左边的数值 * 自加、自减表达式:假设a=5,++a(是...
### C语言基础知识精简概述 #### 数据类型与常量 ...通过以上对C语言的基础知识点的总结, 我们可以看到C语言作为一种结构化编程语言, 具备丰富的数据类型、运算符以及控制流结构, 适用于各种应用程序开发。
C语言基础知识总结是计算机编程语言的基础知识,本文总结了C语言的基础知识点,涵盖程序结构、数据类型、运算符、控制结构、函数、数组、指针等领域。 一、程序结构 * 程序结构有三种:顺序结构、选择结构(分支...
### C语言重要知识点总结 #### 一、C语言程序结构 C语言的程序结构主要包含三种类型:**顺序结构**、**选择结构**(也称为**分支结构**)、**循环结构**。 - **顺序结构**:按照代码的先后顺序依次执行。 - **...