




已阅读5页,还剩89页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Onlythosewhohavethepatiencetodosimplethingsperfectlyeveracquiretheskilltododifficultthingseasily 只有有耐心圆满完成简单工作的人 才能够轻而易举地完成困难的事 数的进制 补充内容 常用的进制日常生活中使用的数制有很多种 通常在计算机中采用的是二进制 由于二进制与八进制和十六进制有特殊的关系 所以在计算机中常常根据需要使用八进制或十六进制 1 十进制数 逢十进一 由数码0 9组成 2 二进制数 逢二进一 由数码0 1组成 3 八进制数 逢八进一 由数码0 7组成 4 十六进制 逢十六进一 由数码0 9 字母a f或A F组成 第2章基本数据及其运算 进制转换 补充内容 1 十进制与其他进制之间的转换转换规则 整数部分除以对应进制的基数逆序取余 小数部分则乘以相应进制基数顺序去整 例 67 10 1000011 2基余数2671233121602802402202110 逆序取余数 例 65 10 41 16基余数1665116440例 65 10 101 8基余数86518808110 逆序取余数 逆序取余数 例 0 125 10 0 001 20 125 20 250 20 50 21 01注意 如果乘2的结果是个无穷尽数 那么则根据需要截取若干位 顺序取整数 2 其他进制转换为十进制转换规则 按权展开相加例 1100101011 2 1 2 1 2 0 2 0 2 1 2 0 2 1 2 0 2 1 2 1 2 811 10例 5E4 16 5 16 14 16 4 16 1508 10 3 二进制 八进制和十六进制之间的转换1 二进制 八进制之间的转换二进制转八进制的规则 从低位 从右至左 起每3位组合成1位八进制数 不足三位时高位补零 即左侧补零 9 8 6 5 7 4 3 2 0 1 2 1 0 八进制转二进制规则 从低位 从右至左 起每1位八进制位转换为3位二进制数 例 试把二进制数101110011转换为八进制数 101110011563 101110011 2 563 8例 试把八进制数123转换为二进制数123001010011 2 二进制 十六进制之间的转换二进制转十六进制规则 从低位 从右至左 起每4位二进制位转换为1位十六进制数 十六进制转二进制规则 从低位 从右至左 起每1位十六进制位转换为4位二进制数 例 试把二进制数101110011转换为十六进制数 101110011173 101110011 2 173 16例 试把十六进制数E53转换为二进制数E53111001010011 2 1基本类型数据 C语言中 基本数据有三种 整数 整数是不带小数点和指数符号的数据 例如 29浮点数 浮点数是带有小数点或指数符号的数值数据 例如 3 65 6e 02字符 字符型数据表示一个字符 占用一个字节 8个二进制位 例如 a 2 1 1整型数据 按其数值范围大小划分成三种 1 基本型 用int标记2 短整型 用shortint标记 简写为short3 长整型 用longint标记 简写为long按值内部的最高位不同理解又有两类 1 带符号 存储单元最高位作为符号位2 不带符号 存储单元中全部二进位用作存放数据本身 而没有符号位 表示方法 unsignedint unsignedshort unsignedlong 例如inti j 定义带符号的整型变量 unsignedshortk 定义无符号短整型变量 longm n 定义带符号的长整型变量 注意 同一类型在不同版本占用字节数不同 不特殊说明的指的都是TC 类型 版本 出错指数 ANSI标准定义的整数类型类型比特数取值范围int16 32768 32767short16 32768 32767long32 2147483648 2147483647unsignedint160 65535unsignedshort160 65535unsignedlong320 4294967297 整型变量的值在内存中的存放形式数据在内存中是以二进制补码形式存放的 例 inti j i 10 j 10 基本整型表示的数值范围 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 图2 1 a 带符号整数 值为32767 即215 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 图2 1 b 带符号整数 1 负数用补码表示 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 图2 1 c 无符号整数 值为65535 即216 1 整型变量的定义对变量强制类型定义的目的 让编译为其分配内存单元 各种变量的定义一般在函数的开始部分例 includevoidmain inta b c d unsignedintu 变量强制类型定义a 12 b 24 u 10 c a u d b u printf a u d b u d n c b u 运算结果 a u 22 b u 14由此可见 不同类型的整型数据可以进行混合运算 出错指数 整型数据的溢出int型变量最大允许值为32767 如果大于此数 将产生溢出例 整型数据的溢出情况 注意 此题是在turboc编译环境下即int是2个字节 includevoidmain inta b a 32767 b a 1 printf d d a b 从上图可知 变量a的最高位为0 低15位为1 表示32767而变量b最高位为1 低15位为0 表示 32768 此种情况 编译系统不会报错 这要靠编程者的细心和经验 出错指数 运行结果 32767 32768 整型常量的类型整型常量本身隐含了某种数据类型 将整型常量赋给整型变量时 要考虑常量的大小和变量所能表示的数据范围 一个整数 其值在如下范围 1 32768 32767 int shortint longint 2 2147483648 2147483647 longint 3 对于非负数 如 0 65535 unsignedint unsignedshort unsignedint0 4294967295 unsignedlong 说明 1 常量中没有unsigned类型的数 正整数可赋给unsigned变量 只要数值不超过范围 2 在函数调用时 若被调用函数的形参是长整型变量 则要求主调函数的实参也是长整型数据 出错指数 整型常量的书写形式 十进制整数 如0 123 45 八进制整数 以数字0开头 并由0 7组成的数字符序列 如 0123表示八进制整数 其值等于十进制整数为 1 82 2 81 3 83 十六进制整数 以0 x 或0X 开头 并由十六进制数的数字符组成的数字符序列 表示十六进制数的数字符有16个 0 9和A B C D E F 其中六个字母也可以小写 如 0 x123表示十六进制整数 其值等于十进制整数为 1 162 2 161 3 291 0 xabc 其值等于10 162 11 161 12 2748 长整型整数和无符号整数的表示 long型整数 在整型常数后加字母L或l 即为long型整型常数 例如 0L 132L等 不带符号的整型 在整型常数后加字母U或u 即为unsigned型整型常数 例如 1U 122U等 不带符号的long型整数 在整型常数后同时加上字母U和L 表明该整型常数是unsignedlong型 例如 22UL 35LU等 出错指数 2 1 2浮点型数据 按数值范围大小和精度不同分成三种 1 单精度型 用float标记 在内存中占用4个字节 32个二进位 7个十进位有效数字 能表示绝对值约为10 37 1038 如 floatx y 2 双精度型 用double标记 在内存中占用8个字节 64个二进位 16个十进位有效数字 能表示绝对值约为10 307 10308 如 doubleresult 3 长双精度实型 用longdouble标记 longdouble型数据一般占用比double型数据更多的字节 通常为16个字节 但在VC中 也只占用8个字节 如 longdoublez 浮点数的一般书写格式正负号整数部分 小数部分指数部分 注意 1 整数部分和小数部分可以任选 但不可同时没有 2 小数点和指数部分不可以同时都没有 3 指数部分是以一个字母e或E 代表10 开头 后跟一个整数 例如 合法的浮点常数 7 457 1E5 1 5e 6不正确的浮点常数 E4 E5 4 0E 出错指数 4 在浮点数后加f表示float 加L 或l 表示longdouble型 在浮点数的最后不加任何字母 C系统认为此数是double型 例如 1 5表示double型1 5f表示float型1 5L表示longdouble型 出错指数 注意要点 2 浮点数运算有一定的计算误差例如 要判别两个浮点型变量x和y是否相等正确 fabs x y 1e 6 x与y非常接近则认为相等 fabs 是求绝对值的函数 错误 x y x与y不可能完全相等 1 接受的浮点数与书写会有一定的误差例如 floatx 1 23456789 因x只能存储约7位有效数字 浮点数1 23456789所对应的二进制形式中 超出存储位数的那些位不会被存储 出错指数 3 未加说明 系统将实型常量作为双精度处理floatf f 2 45678 4532 65系统将两数按双精度运算 然后将前7位赋给实型变量f 缺点 浪费系统资源 降低运算速度 解决的办法 在数的后面加f 如2 45678f 系统将其按单精度数运算 4 实型常量赋给float或double类型变量时 根据变量的类型截取实型常量的有效位 includevoidmain floatf1 doublef2 f1 111111 111 f2 111111 11111 printf f1 f nf2 lf n f1 f2 输出结果 f1 111111 109375f2 111111 111111 实型常量可赋给float或double型变量 根据变量类型截取实型常量的有效位 单精度实型数据 float 表示数据范围 十进制形式 7位有效位指数形式 e 双精度实型数据 double 表示范围 十进制形式 16位有效位指数形式 e 长双精度实型数据 longdouble 表示数据范围 十进制形式 19位有效位指数形式 e 2 1 3字符型数据 字符型数据用于表示一个字符值 字符型数据的内部表示是字符的ASCII代码 以二进制形式 例如 A 的ASCII值为65 内存中存的是 1000001字符型数据的类型符用char来标记 如 charc1 c2 字符型数据可看作是 128 127或0 255的一个整数 普通字符常量 普通字符常量 用单引号括住的一个字符 例如 a B 例字符型数据与整型数据通用的示例程序 includevoidmain charc1 c2 c1 97 c2 c1 1 字符型数据与整型数据混合运算 printf c2 c c2 sASCIIcode d n c2 c2 c2 b c2 sASCIIcode 98 转义字符常量 转义字符常量 用 字符或 字符列来标记 例如 r 回车符光标位置移到当前行首 t 制表符使输出位置横向跳至下一个输出区开始列 屏幕自左向右每8列为一个输出区 一个制表位 a响铃 b退格 Backspace键 n换行符 光标位置移到下一行首 反斜杠符 单引号符 双引号符 0字符串结束符 dddddd为1至3个8进制数字如 12 也能表示换行符 n xhhhh为1至2个16进制数字如 x41 也能表示大写字母 A 需要牢记 例 includevoidmain charc1 376 unsignedcharc2 376 printf d c n c1 c1 printf d c n c2 c2 charc1unsignedcharc2 运行结果 2 254 请见附录 注意 1 字符的ASCII值都是正的2 如果为一个字符变量赋值一个负数 当要输出字符时则将该负数的补码当做正值 找到相对应的字符输出 例 includevoidmain printf abc tde rf tg n printf h ti b bjk n 运行结果 fgdehjk 注意 t在跳到下一制表位的过程中用填充它经过的位置 字符串常量 字符串常量 用双引号括起来的一串字符 例如 Iamastudent China a 普通字符与字符串的区别 出错指数 注意要点 字符型与字符串常量的区别 例如 charc a charc a 又如 字符串 China 在内存中的存储形式 需要6个字节 出错指数 2 2数据运算 运算符的优先级优先级用来标志运算符在表达式中的运算顺序 优先级高的先运算 优先级低的后运算 如 x y z相当于x y z 运算符的结合性在优先级相同情况下 表达式的计算顺序由结合性来确定 大多数运算符的结合性是从左至右 只有单目 三目和赋值运算符的结合性是从右至左的 如 x a b c a b c 1 5 x a b c a b c 1 5 出错指数 2 2 1赋值运算 简单赋值形式 变量 表达式赋值表达式的结果是等号左边变量的值 1 计算表达式 并将计算的值赋给变量 2 如表达式类型与变量类型不一致 将表达式值的类型自动转换成变量的类型 3 将表达式的值赋给变量 说明 赋值运算符的结合性是 自右至左 出错指数 2 2 1赋值运算 例1 intx doubley y x 3 5 例2 i 4 j 7 例3 i j 3 k 8 x的值为3 y的值为3 0表达式的值为3 0 使j值为7 i值为11 表达式的值为11 使j值为3 k为8 i为11 表达式的值为11 类型转换 补充内容 变量类型的不同 所接收的数据也是不同的 当赋值运算符两侧的数据类型不一致时 在赋值时要进行类型转换 1 实型数据赋给整型变量时 舍去实型数据的小数部分 如 inti i 3 56 结果i的值为3 2 整型数据赋给实型变量时 数值不变 但以浮点形式存放于内存 如 floata 23 先将23转换成23 00000 然后送a中 doubleb 23 先将23转换为23 00000000000000 然后送b中 3 double型数据赋给float变量截取其前面的7位有效数字 存放到float单元 应注意数值范围不能溢出如 floatf doubled 123 45678e65 f d 由于数据溢出 f将得到错误的值float数据赋给double变量时 数值不变 有效位扩展到16位 4 字符型数据赋给整型变量字符数据占一个字节 整型数据占两个字节 字符数据存入整型变量的低8位 有两种情况 无符号字符型数据赋给整型变量时 将其存放在整型变量的低8位中 而高位以0补齐 includevoidmain inti unsignedcharc c 376 i c printf i d c d n i c 结果 i 254c 254 带符号的字符型数据赋给整型变量时若最高位为1 负数 则整型变量的高8位补1 若最高位为0 正数 则整型变量高8位补0 例 includevoidmain inti charc c 376 i c printf i d c d n i c 运行结果 i 2 c 2 5 int short long型数据赋给char变量 则将其低 位赋给char型变量例 includevoidmain inti 289 charc a c i printf i d c d d i c 运算结果 i 289 c 33 6 long型数据赋给int型变量 将long型数据的低16位赋给int型变量例voidmain inta longb 65544 a b printf a d b ld n a b a 8 符号位 b 65544 运算结果 a 8 b 65544 45 7 将unsignedint型数据赋给long型变量时 将unsignedint型数据送到longint型变量的低16位 longint的变量高16位补0例 includevoidmain unsigneda 65535 longb b a printf a u b ld n a b 输出 a 65535 b 65535 若无符号数据赋给相同长度的带符号的变量时 则原样赋给 unsignedint intunsignedshort shortintunsignedlong longint要注意数据的有效位占据符号位例voidmain unsignedinta 65535 intb b a printf a u b d n a b 运算结果 a 65535 b 1 8 将带符号的数赋给长度相同的无符号变量过程 原样赋给例 includevoidmain unsignedinta intb 1 a b printf a u b d n a b 1111111111111111 1111111111111111 a b 符号位 数值位 运算结果 a 65535 b 1 总结 字节数多的赋给字节数少的 截断字节数少的赋给字节数多的 符号扩展相同字节数赋值 原样赋值 变量赋初值定义的同时给变量赋初值如 inta 3 floatb 3 1415 charc x 2 定义变量时 可以对其中的一部分变量赋初值如 inta 3 b c d 8 3 把一个常量赋给不同变量时 最好分别进行 如 inta b c 3 错误而应写为 inta 3 b 3 c 3 4 初始化是在程序运行时 执行本函数时赋以初值的 如 inta 3 相当于 inta a 3 赋值运算 复合赋值运算 在赋值运算符 之前加上其他运算符 可构成复合运算符 复合运算符 例 x 5 0等价于x x 5 0 将 x 移到 右侧 x u v等价于x x u v a a b 2等价于a a a a b 2 出错指数 例 includevoidmain inta 12 b b a a a a printf a d b d n a b 运算结果 a 264 b 264a a a aa a a a12 12 12 132a a 132 132 132 264 出错指数 2 2 2算术运算 一般运算符 单目运算符 取正 取负 双目运算符 加 减 乘 除 求余 说明 1 两个整数相除结果为整数 取整 若有一个数为浮点数 则结果为浮点数 2 求余运算符 要求参与运算的两个分量均为整型数据 如5 3 2 求余运算所得结果的符号与被除数的符号相同 如 5 3 2 5 3 2 3 加 减 乘 除和求余运算都是双目运算符 结合性都是从左至右的 取正 取负 是单目运算符 结合性是从右至左 优先级 取正 取负 高于 高于 加 减 出错指数 例 整型数据除法运算 includevoidmain inta b c a 5 b 3 c a b printf c d n c 出错指数 运算结果 c 1 例实型数据除法运算 includevoidmain floata b c a 5 b 3 c a b printf f n c 运算结果 1 666667 算术运算 自增和自减运算符 i前缀形式 表示在引用变量i之前 先使i加1 以加1后的i值为运算结果 i前缀形式 表示在引用变量i之前 先使i减1 以减1后的i值为运算结果 i 后缀形式 表示在引用变量i之后 才使i加1 即以增1前的i值为运算结果 i 后缀形式 表示在引用变量i之后 才使i减1 即以减1前的i值为运算结果 自增 自减运算符 例 例如 i 4 j i i 4 j i i 4 j i i 4 j i i结果为5 j的结果为5 i结果为5 j的结果为4 i结果为3 j的结果为3 i结果为3 j的结果为4 例 includevoidmain inti j i 3 j i printf i d j d n i j 说明 1 运算符只能用于变量 而不能用于常量和表达式 如a b 是正确的 而5 x y 却是错误的 2 运算符的结合方向是从右向左 与 运算符优先级相同 出错指数 运算结果 i 4 j 3 例voidmain inti i 3 printf i1 d n i printf i2 d n i 例voidmain inti i 3 printf i1 d n i printf i2 d n i 运算结果 i1 3i2 4 运算结果 i1 4i2 4 有关表达式使用中的问题说明 1 C中的运算符和表达式 表达式中的子表达式的求值顺序各编译系统是有差别的 如对表达式 a f1 f2 一般情况下是先调用f1 再调用f2 先后次序无关紧要 但有些情况 结果却不同 编程时要注意所用的编译系统 我们主要是以TurboC加以讨论 又如i 3 表达式 i i i 有的系统的求值顺序是先求第一个 再求第二个最后求第三个子表达式 其结果是 3 4 5 12 最后i的值为6而在TurboC中却有所不同 例 includevoidmain inti 3 j 3 k q k i i i q j j j printf i d j d k d q d n i j k q 运算结果 i 6 j 6 k 9 q 18 出错指数 上述情况有时往往造成混淆 解决的方法 把各中间结果先计算送各中间变量 然后相加 例 includevoidmain inti j x y i 3 j 30 x i i i i y j j j j printf i d j d x d y d n i j x y 出错指数 运算结果 i 7 j 26 x 20 y 112 VC 环境下连续自增 自减 运算规则 补充 1 在一般表达式中和在函数参数中计算的结果相同 这一点与TurboC环境不同 2 后缀 同表达式中TurboC的情况相同 先统一取值后依次自增 如 inta i 5 a i i i a 15 i 8 3 前缀 前两个自增同TurboC 即依次自增后统一取值 后面的每个自增后即取值 如 inta i 5 a i i i a 22 i 8 4 前后缀混合的情况 1 一般情况 表达式中自左向右计算 参数自右向左运算 前缀自增后取值 后缀 或变量 取值依其所处位置而定 有连续多个将统一取值 其自增在语句结束前进行 2 前后缀各有一个的情况 设inti 5 由于i i应满足交换率与 i i 相同 规定按后者计算故为36 inti 5 printf d d n i i i 打印5 36 3 若i 或 i或两者有多于一个的情况 i有两个以上在一起时最左边的连续自增同3 其余每个自增后取值 如 inti 5 printf d n d n i i i i i 打印6和25printf d n d n i i i i i i 打印8和40printf d n d n i i i i i i i 打印9和49 4 函数参数中有括号时 括号参数优先计算 其余参数仍自右向左计算 如 inti 9 j 8 printf d d n i j i 打印811printf d d d n i j i i 打印81110 5 最后i的值等于原值加总自增次数减自减的次数 2 在C语言中运算符的确定在由多个字符组成的表达式中 应尽可能多地从左向右将若干个字符组成一个运算符 如 i j其结合性是 i j而不是 i j 3 printf函数输出实参的顺序如 inti 3 printf d d n i i 有的系统按从左到右的顺序求值 输出结果是 3 3而TurboC是按从右到左顺序求值 输出结果是 4 3结论 不写别人甚至自己都看不懂的程序 也不写那些不知道系统会怎样运行的程序 2 2 3关系运算和逻辑运算 关系运算符 关系运算符用于对两个值进行关系比较 判定比较条件是否满足 在 语言中 条件满足的值为1 条件不满足为0 1 优先级 高于 如 表达式x y cy cu v等价于x u v 3 关系运算符的结合方向是自左至右的如 i 1 j 2 k 3则表达式k j i的值为 0 出错指数 2 2 3关系运算和逻辑运算 逻辑运算符 逻辑与 逻辑或 逻辑非 其中 运算符 和 是双目运算符 要求有两个运算数 运算符 是单目运算符 只要求一个运算数 优先级 说明 逻辑运算结果也是一个逻辑量 即真 用1表示 或假 用0表示 判定一个运算分量的值为真或假时 以运算分量的值不等于零为真 值等于0为假 高于 高于 逻辑运算 真值表 ab aa ba b非0非0011非000010非010100100优先级 非 高算术运算符关系运算符 赋值运算符低 2 2 3关系运算和逻辑运算 例 例如 a b x y a b x y a b x y a b x y x 0 xy x 0 xy a b x y zy z y 2 2 3关系运算和逻辑运算 例 在算术 关系 逻辑混合运算的表达式中 不同位置上出现的运算分量 应区分哪些是算术运算分量 哪些是关系运算分量和哪些是逻辑运算分量 例如 2 1 4 71 4 7 3 0 2 2 3关系运算和逻辑运算 例 判别某一年是否为闰年 闰年是满足以下两个条件之一 1 该年份能被4整除 但不能被100整除 2 该年份能被400整除用逻辑表达式可描述闰年条件 year 4 0 year 100 0 year 400 0可简化为 year 4 0 year 100 year 400 0表达式结果为真表明是闰年 为假是非闰年 2 3 3关系运算和逻辑运算 逻辑与 和 逻辑或 运算符的性质 a b当a为0时 结果为0 不必再计算b 仅当a为非0时 才需计算b a b当a为1时 结果为1 不必再计算b 仅当a为0时 才需计算b 例1 a 1 b 2 c 3 d 4 m 0 n 6 m a b n c d m n 出错指数 m 0 n c d不计算 n仍为6 2 3 3关系运算和逻辑运算 例2 inta 1 b 1 c 1 计算 a b c 因 a非0 不再计算逻辑或右边表达式 b c 该表达式计算后 变量a的值变为2 而变量b和c的值不变 依旧为1 注意书写顺序 例如 y x 2且x 0应写成 x 0 y x 2这样可避免除0的错误因为 当x为0时 不会计算y x而写成 y x 2 x 0是危险的 因为当x为0时 不能计算y x 出错指数 2 2 4条件运算 形式 表达式1 表达式2 表达式3执行过程 1 计算表达式1 2 如果表达式1的值非0 真 则计算表达式2 并作为整个条件表达式的结果 不再计算表达式3 3 如果表达式1的值为0 假 则计算表达式3 并作为整个条件表达式的结果 不再计算表达式2 例如 x y x y如果x y为真 则条件运算取x值 否则取y值 说明 条件运算符 优先级高于赋值运算符 低于逻辑运算符 关系运算符和算术运算符 2 2 4条件运算 条件运算符的结合性为 自右至左 例如 x y x u v u v等价于 x y x u v u v 条件运算三个运算分量的数据类型可以各不相同 语言约定 类型低的向类型高的转换 如 i j 2 3 5当i j时 条件表达式的值为2 0 否则为3 5 出错指数 2 2 5其他运算符 逗号运算 形式 表达式1 表达式2 表达式n执行过程 1 从左至右依次计算各个表达式 2 最后一个表达式的值作为整个逗号表达式运算的结果 例如 x i 3 i 2 结果 使i等于3 x等于6 说明 1 逗号运算目的是将多个表达式 串连 起来 分别得到各表达式的值 2 逗号运算常用于for循环结构 用于给多个变量赋初值 3 逗号运算符的优先级最低 2 2 5其他运算符 sizeof运算 形式 sizeof 类型名 或sizeof变量作用 给出运算对象在内存中所占用的字节数 例 intx 1 floaty 2 doublez 4 printf int d float d double d n sizeofx sizeof float sizeofz 结果 int 4 float 4 double 8 2 2 5其他运算符 位运算 位运算的运算分量只能是整型或字符型数据 位运算把运算对象看作是由二进位组成的位串信息 按位完成指定的运算 得到位串信息结果 位运算符按优先级从高到低依次为 位反 位与 位异或 位或 说明 位反是单目运算符 其余均为双目运算符 位运算 位与运算 位与规则 0 0 0 0 1 0 1 0 0 1 1 1即 同为1的位 结果为1 否则结果为0 例如 53 22的结果为200000000000110101 十进制53 八进制为65 0000000000010110 十进制22 八进制为26 0000000000010100 十进制20 八进制为24 按位与运算典型用法 1 取一个位串的某几位例如 截取x的最低7位 x 01772 保留变量某几位 其余位置0例如 保留x最低6位 x x 077 位运算 位或运算 位与规则 0 0 00 1 11 0 11 1 1即 只要有1个是1的位 结果为1 否则为0 例如 53 22的结果为550000000000110101 十进制53 八进制为65 0000000000010110 十进制22 八进制为26 0000000000110111 十进制55 八进制为67 按位或运算典型用法 将一个位串的某几位置成1 例如 将变量x的最低4位设置为1 其余位不变 x 017 x 位运算 位异或运算 位与规则 0 0 0 0 1 1 1 0 1 1 1 0即 相应位的值相同的结果为0 不相同的结果为1 例如 53 22的结果为350000000000110101 十进制53 八进制为65 0000000000010110 十进制22 八进制为26 0000000000100011 十进制35 八进制为43 按位异或运算典型用法 将一个位串某几位取反 例如 将变量x的最低4位取反 其余位不变 x 017 x 位运算 位反运算 位与规则 0 1 1 0即 0取反结果为1 1取反为0 例如 53的结果为 54 0000000000110101 十进制53 八进制为65 1111111111001010 十进制 54 八进制为177712 位运算 移位运算 将整型数据或字符型数据作为二进位的位串 整体向左或向右移动 1 左移运算 x yx右移y位 每右移1位相当于除以2例如 12 2结果为3说明 移位运算符的优先级低于算术运算符 高于关系运算符 2 3表达式 表达式 由运算符和运算分量构成 表达式的值 按运算符的优先级和结
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论