正在加载图片...
按位异或 var var2 var lva 位运算符将其操作数看作一个二进制位的集合,各二进制位的取值只能是0和1中的 个。通过位运算,程序员可以对某个数据中的特定二进制位进行检测或为给定的二进制位赋 注意:位运算符的操作数只能是基本数据类型中的char和int类型及其各种变体而不支 持 float、 double、void或其他更复杂的数据类型。对于整型数据,由于符号位在不同位运算 符中的处理方法不同,且受到机器类型的影响。因此,为了保证程序运行的正确性,建议使 用 unsigned int类型数据作为位运算符的操作数 利用位运算符来设置及检测奇偶校验位,也可以用于简单的加密程序等。 8、 sizeof运算符 sizeof运算符通知编译程序其操作数在内存中占用的字节数,它返回变量或括号中的类 型修饰符的字节长度。这是在程序编译时确定的,与程序的运行状态无关。其格式如下: sizeof( type specifier); E sizeof(variable name) 使用 sizeof运算符的主要目的是为了增强程序的可移植性,使之不会由于机器表示同- 数据类型时存在字节长度不同而导致程序出错,从而确保程序可以在不同的硬件环境上正常 运行。 2.4.2C++表达式 在C++中,表达式是由运算符、常量、变量和表达式按照一定的语法规则组合而成的 表达式在程序执行时完成一个或多个操作,并最终返回一个结果。若无特别说明,表达式的 返回结果是一个右值,其数据类型由参与运算的数据的数据类型来确定。 当不同数据类型的常量和变量在一个表达式中混合使用时,它们在计算时将被转换成同 数据类型。通常C艹+编译器在进行类型转换时遵循“向上转换”的原则,即将涉及数据I 数据类型转换为其中字长最长的数据类型。转换规则如下所示: (1)所有的char和 short int都被转换为int (2)对所有的foat被转换为 double: (3)对所有的操作数,若其中一个为 long double,则另一个也被转换为 long double (4)否则,如果一个操作数为 double,则另一个也被转换为 double (5)否则,如果一个操作数为long,则另一个也被转换为long; (6)否则,如果一个操作数为 unsigned,则另一个也被转换为 unsigned 在按上述规则进行数据类型转换后,同一表达式中的操作数都变成了相同的数据类型数 据,而表达式的运算结果的数据类型也就是这些数据的数据类型 当然,程序员也可以通过强制类型转换强迫表达式中的某些数据转换为某一特定的数据 类型。强制数据类型的形式如下所示 (type-specifier ) variable(u:( double)var;^ 按位异或 var1^var2 | 按位或 var1|var2 位运算符将其操作数看作一个二进制位的集合,各二进制位的取值只能是 0 和 1 中的一 个。通过位运算,程序员可以对某个数据中的特定二进制位进行检测或为给定的二进制位赋 值。 注意:位运算符的操作数只能是基本数据类型中的 char 和 int 类型及其各种变体而不支 持 float、double、void 或其他更复杂的数据类型。对于整型数据,由于符号位在不同位运算 符中的处理方法不同,且受到机器类型的影响。因此,为了保证程序运行的正确性,建议使 用 unsigned int 类型数据作为位运算符的操作数。 利用位运算符来设置及检测奇偶校验位,也可以用于简单的加密程序等。 8、sizeof 运算符 sizeof 运算符通知编译程序其操作数在内存中占用的字节数,它返回变量或括号中的类 型修饰符的字节长度。这是在程序编译时确定的,与程序的运行状态无关。其格式如下: sizeof(type_specifier); 或 sizeof(variable_name); 使用 sizeof 运算符的主要目的是为了增强程序的可移植性,使之不会由于机器表示同一 数据类型时存在字节长度不同而导致程序出错,从而确保程序可以在不同的硬件环境上正常 运行。 2.4.2 C++表达式 在 C++中,表达式是由运算符、常量、变量和表达式按照一定的语法规则组合而成的。 表达式在程序执行时完成一个或多个操作,并最终返回一个结果。若无特别说明,表达式的 返回结果是一个右值,其数据类型由参与运算的数据的数据类型来确定。 当不同数据类型的常量和变量在一个表达式中混合使用时,它们在计算时将被转换成同 一数据类型。通常 C++编译器在进行类型转换时遵循“向上转换”的原则,即将涉及数据的 数据类型转换为其中字长最长的数据类型。转换规则如下所示: (1)所有的 char 和 short int 都被转换为 int; (2)对所有的 float 被转换为 double; (3)对所有的操作数,若其中一个为 long double,则另一个也被转换为 long double; (4)否则,如果一个操作数为 double,则另一个也被转换为 double; (5)否则,如果一个操作数为 long,则另一个也被转换为 long; (6)否则,如果一个操作数为 unsigned,则另一个也被转换为 unsigned; 在按上述规则进行数据类型转换后,同一表达式中的操作数都变成了相同的数据类型数 据,而表达式的运算结果的数据类型也就是这些数据的数据类型。 当然,程序员也可以通过强制类型转换强迫表达式中的某些数据转换为某一特定的数据 类型。强制数据类型的形式如下所示: (type-specifier)variable (如:(double)var;)
<<向上翻页
©2008-现在 cucdc.com 高等教育资讯网 版权所有