C语言数据类型的转换
C语言的类型转换,一个是强制类型进行转换,而在这里要介绍的是自动的数据类型的转换,自动的数据类型转换很多时候是发生在多种数据类型混合使用的时候就会进行类型的转换,这样就会带来不能控制的结果,所以必须进行学习。
1、算术进行类型转换
在进行算术运算(加减乘除、相除、大小)的时候,当数据类型不一致的时候,就会发生数据类型的转换。
if (- < (unsigned int))
{
printf(" -1 < (unsigned int)1 \n");
}
else
{
printf(" -1 > (unsigned int)1 \n");
}
输出结果为:-1 > (unsigned int)1,
类型转换的准则是:占据较大字节的数据类型以他为准,其他较小字节数的数据类型全部转换为较大字节数的数据类型,当一个 int 类型与一个 char
类型的数据进行相加的时候,首先需要将 char 类型的转换int 类型(四个字节)然后再进行数据的相加。
而当出现无符号计算的时候,就需要将数据转换为无符号类型的,当 int 类型的 -1 转换为无符号的之后,就变为一个很大的正数,所以才会出现 -1 >(unsigned int)1 的情况。
而数据中,1 的数据类型没有被明确指定的话,就全部以默认为 int 类型。
2、赋值发生类型转换
进行赋值操作的时候,当两边的数据类型不一致的时候,需要将右边的数据类型转换为左边数据类型。
int a = ;
char b = ;
a = b;
printf("a = %d\n", a);
输出结果为: a = 2;
这里需要注意的时候,当赋值的右边的数值比左边类型的最大值大的时候,就会出现错误的数据,这里需要明确注意:
int a = ;
char b = ;
b = a;
printf("b = %d\n", b);
输出的结果是:b = -128.例子就是右边的数值大于 char 类型最大允许的数据范围(char 运行的范围-128~127,256个数值)。128 明显是大于 127,所以就是将128 - 127 = 1;是超过了 char 类型允许范围 1,所以就会数据就会溢出,所以输出的值,就是 -128;
总结:
数据类型转换是发生在多数据类型混合中,而转换的原则是:数据转换的方向是朝着精度更高、长度更长的方向进行转换。
C语言数据类型的转换的更多相关文章
- C语言数据类型的转换(隐式转换)
算术运算符中的转换规则: double ←── float 高↑long↑unsigned↑int ←── char,short 低 注意: 图中横向箭头表示必须的转换,如两个float型数参加运算, ...
- 语言基础:C#输入输出与数据类型及其转换
今天学习了C#的定义及特点,Visual Studio.Net的集成开发环境和C#语言基础. C#语言基础资料——输入输出与数据类型及其转换 函数的四要素:名称,输入,输出,加工 输出 Console ...
- Java的基本数据类型与转换
1.1 Java为什么需要保留基本数据类型 http://www.importnew.com/11915.html 基本数据类型对大多数业务相关或网络应用程序没有太大的用处,这些应用一般是采用客户端/ ...
- Java学习笔记之:Java数据类型的转换
一.介绍 数据类型的转换,分为自动转换和强制转换.自动转换是程序在执行过程中“悄然”进行的转换,不需要用户提前声明,一般是从位数低的类型向位数高的类型转换:强制类型转换则必须在代码中声明,转换顺序不受 ...
- php之数据类型自动转换
1:概述 ---php是一种弱类型的语言,它可以根据运行环境的变化而自动进行数据类型的转换 1.1转换成布尔类型的原则 以下值都将转换成布尔类型中的false: A.布尔类型的false; B.空字符 ...
- Spark PySpark数据类型的转换原理—Writable Converter
Spark目前支持三种开发语言:Scala.Java.Python,目前我们大量使用Python来开发Spark App(Spark 1.2开始支持使用Python开发Spark Streaming ...
- Java基础之数据类型和转换
一.常见的数据类型分类 1.java中基本数据类型分为三大类,即布尔类型,字符型,数值型.其中数值型又分为整型和浮点型.引用数据类型分为类,接口,数组,枚举,注解.具体如下: 注:一个字节 = 8位 ...
- R语言数据类型
R语言数据类型[转!!]Zhao-Pace https://www.cnblogs.com/zhao441354231/p/5970544.html R语言用来存储数据的对象包括: 向量, 因子 ...
- Go语言数据类型
目录 基本数据类型说明 整型 浮点型 字符 字符类型本质探讨 布尔型 字符串 指针 值类型与引用类型 基本数据类型默认值 基本数据类型相互转换 注意事项 其他基本类型转string类型 string类 ...
随机推荐
- POJ 3686 The Windy's(思维+费用流好题)
The Windy's Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 5362 Accepted: 2249 Descr ...
- [51nod 1022] 石子归并v2 [dp+四边形不等式优化]
题面: 传送门 思路: 加强版的石子归并,现在朴素的区间dp无法解决问题了 首先我们破环成链,复制一条一样的链并粘贴到原来的链后面,变成一个2n长度的序列,在它上面dp,效率O(8n^3) 显然是过不 ...
- 【CCF】路径解析 模拟
#include<iostream> #include<cstdio> #include<string> #include<cstring> #incl ...
- 七牛云的cdn配置
https://segmentfault.com/q/1010000004265556
- 转:mysql 索引
转:mysql 索引 文章归属:http://feiyan.info/16.html,我想自己去写了,但是发现此君总结的非常详细.直接搬过来了 关于MySQL索引的好处,如果正确合理设计并且使用索引的 ...
- Linux(ubuntu)下手动安装 firefox 6 并且添加快捷方式图标
Mozilla 正式发布了Firefox 6,如果你的电脑上还在用非常古老的版本么,赶紧过来更新下吧,由于官网上面只是提供了linux下的.bz2的压缩包,没有deb或者rmp格式,所以需要自己安装下 ...
- linux mmap 详解【转】
转自:http://blog.chinaunix.net/uid-20321537-id-3483405.html 一.前言mmap的具体实现以前在学习内核时学习过,但是对于其中的很多函数是一知半解的 ...
- Day 32 process&threading_4
线程和进程 4 一.multiprocessing模块 multiprocessing包是Python中的多进程管理包. 与threading.Thread类似,它可以利用multiprocessin ...
- NOIP 2014飞扬的小鸟(DP优化)
题目链接 飞扬的小鸟 考场的70分暴力(实际只有50分因为数组开小了……) 考场代码(数组大小已修改) #include <cstdio> #include <cstring> ...
- luogu P1651 塔
题目描述 小明很喜欢摆积木,现在他正在玩的积木是由N个木块组成的,他想用这些木块搭出两座高度相同的塔,一座塔的高度是搭建它的所有木块的高度和,并且一座塔至少要用一个木块.每个木块只能用一次,也可以不用 ...