在 c语言中int long unsigned 和 char这四种类型数据的转换规律是_____.

谢谢了,请问是为什么?这种转换是啥玩意

首先,在C中,数据之间的运算必须是同类型的才能进行运算。如果类型不一致,就必须先转换成相同的类型----------由低级别 → 高级别转换。

本题中,数据类型级别由低到高分别为:char→int→unsigned→long。转换时由低级别向高级别转换。

比如,有两个数的数据类型分别为:char型跟long型。  就要先char转换为long型(因为long级别比char高),再进行运算。  

但是不能理解为:先将char转换成int,再转换成unsigned,再转换成long。

C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。

在开发中,他们还考虑把UNIX移植到其他类型的计算机上使用。C语言强大的移植性在此显现。机器语言和汇编语言都不具有移植性,为x86开发的程序,不可能在Alpha,SPARC和ARM等机器上运行。而C语言程序则可以使用在任意架构的处理器上,只要那种架构的处理器具有对应的C语言编译器和库,然后将C源代码编译、连接成目标二进制文件之后即可运行。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-25
首先,在C中,数据之间的运算必须是同类型的才能进行运算。如果类型不一致,就必须先转换成相同的类型----------由低级别 → 高
级别转换。

本题中,数据类型级别由低到高分别为:char→int→unsigned→long。转换时由低级别向高级别转换。
比如,有两个数的数据类型分别为:char型跟long型。 就要先char转换为long型(因为long级别比char高),再进行运算。 但是不能理解为:先将char转换成int,再转换成unsigned,再转换成long。

希望对您有所帮助!追问

谢谢。请问x2b2这个不是合法整数,那里错了?为什么?谢谢了

追答

十六进制整常数由 前缀(0X或0x) 和 数码(0~9、A~F或a~f) 组成。

所以x2b2是非法的。
错在前缀 x ,应该改为 0X或0x。 ---------------- 0是数字的0,不是英文字母O.

追问

01010B呢

追答

也是非法的。
因为 以0为前缀的是八进制, 八进制的数码在0~7之间,不可能有字母B。 所以非法

本回答被提问者采纳

...unsigned 和 char这四种类型数据的转换规律是___.
比如,有两个数的数据类型分别为:char型跟long型。 就要先char转换为long型(因为long级别比char高),再进行运算。但是不能理解为:先将char转换成int,再转换成unsigned,再转换成long。C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritc...

C语言中的类型转换
类型转换通常自动进行,确保运算顺利进行。转换依据类型级别,从低到高依次为:char < short < int < long < float < double。注意,char和unsigned char转换为int,而无符号类型通常优先于有符号类型。在进行整型运算时,结果将丢失小数部分。为保留小数部分,必须在运算符两边添加浮点类型。对于字面常量...

C语言数据类型的转换
(1)若运算数中有double型或float型,则其他类型数据均转换成double类型进行运算。(2)若运算数中最长的类型为long型.则其他类型数均转换成long型数。(3)若运算数中最长类型为int型,则char型也转换成int型进行运算。算术转换是在运算过程中自动完成的。2.赋值转换 进行赋值操作时,赋值运算符右边的...

c语言中整型和浮点型混合运算的结果是什么类型
c语言中如果一个运算符两边的运算数类型不同,先要将其转换为相同的类型,即较低类型转换为较高类型,然后再参加运算,转换规则:float(浮点型)转化为double(双精度浮点类型)、int(整型)转为unsigned(无符号整型)转为long(长整型)转为(双精度浮点类型)。因此,c语言中整型和浮点型混合运算,...

表达式中包含int、long、unsigned、char类型的变量和数据,则表达式最后...
C语言有这个特性,不同类型在一起运算,最后结果一定是占空间最大的那个类型

c语言中int和unsigned优先级匹配 int类型数字与unsigned类型的数字...
+ unsigned long = unsigned long);否则如果signed类型可以表示所有unsigned类型的数据,则unsigned一边转换成signed一边的类型(signed long long + unsigned int = signed long long);否则两边全都转换成int(unsigned short + unsigned char = int)这个并不是匹配,另外注意这个也不是类型提升。

在C语言中,double、long、unsigned、int、char类型数据所占字节数_百...
在C语言中,不同数据类型所占用的内存字节数取决于编译器的位宽。对于16位编译器,char类型占用1个字节,指针变量char*占用2个字节;short int和int占用2个字节,unsigned int同样为2个字节;float占4个字节,double则需要8个字节;long和unsigned long各有4个字节。而对于32位编译器,char和指针char*...

c语言中计算int,float,double,char四种数据类型所能表示的数据范围_百 ...
int 有符号整数,根据系统(编译器)不同,有不同的范围,16bits系统(DOS系统):-(2^15)到(2^15-1),32bits系统:-(2^31)到(2^31-1),64bits:-(2^63)到(2^63-1)。如果是无符号整数unsigned int,那么16bits系统(DOS系统):0到(2^16-1),32bits:0到(2^32-1),64bits:0...

算术移位和逻辑移位详解
整数乘除法在C\/C++中有时会犯错,因此理解移位操作至关重要。直接移位的数据类型包括:char、short、int、long、unsigned char、unsigned short、unsigned int、unsigned long,而double、float、bool、long double则不能进行移位操作。对于有符号数据类型,如char、short、int、long,左移时,负数的符号位...

C语言中不同的数据类型的长度和什么有关
和编译器有关。每种类型占用的字节数,是和编译器直接相关的,也就是常说的编译器的字长。以整型系列的类型,char, short, int, long为例:1 16位字长:对于16位编译器,char占1字节,short占2字节,int占2字节,long占4字节。2 32位字长:对于32位编译器,char 占1字节,short占2字节,int占...

相似回答