c语言笔记——运算符
来源:互联网 发布:药品数据查询 编辑:程序博客网 时间:2024/05/17 23:11
一.移位运算
左移<<
右移>>
例题:将short类型数据的高、低字节互换
代码:
short a=0xf245,b,c;b = a>>8;//右移8位,将前8个高位移到 后八个低位 ,高8位补1 c = a<<8;//左移8位,将后8个高位移到 前八个低位b = b&0x00ff;//将b的高8位清0a = b+c;printf("b=%x\n",b) ;printf("c=%x\n",c) ;printf("a=%x",a) ;
结果:
b=f2
c=4500
a=45f2
思路:分别将a的高8位和低8位保存在b,c中,b,c中的其余个位为0,然后a = b+c;
分析:
a右移8位得到b,b中保存a的之前的高八位,但是由于a是有符号浮点数,并且二进制表达形式可以看出,符号为1,故b的高8位全部都补1。所有这个时候右移得到的b的值其实为:0xfff2
要想通过b+c得到a,必须将b的高8位变成0,所以b = b & 0x00ff;就可以使得b的高8位清0;
这两句话可以缩减成一句话:
c = (unsigned)a>>8;
a左移8位得到c,c中保存a的之前的低八位,c的低8位补0即可。
二.逗号运算符
逗号运算符的值:最后一个表达式的值
如:
a=4,b=a+5,b++的值为9
三.sizeof
1.定义:能获取变量和数据类型所占内存大小(字节数)的运算符
2.格式:
sizeof 表达式
sizeof (数据类型名或表达式)
3.结果(int型)
sizeof(基本数据类型)
sizeof(char) 1
sizeof(int) 2
sizeof(float) 4
sizeof(double) 8
sizeof(指针类型)
都是8
sizeof(数组)
是数组的总字节数
sizeof(字符串或者数值)
例如: sizeof(8) = 4; //自动转化为int类型
sizeof(8.8) = 8; //自动转化为double类型,注意,不是float
sizeof(“ab”) = 3 //自动转化为数组类型,
//长度是4,不是3,因为加上了最后的’\0’符
//有资料说,会自动转化为指针类型(Linux为4)
//可能和操作系统与编译器有关系
sizeof(联合体)
当操作数是联合类型时,sizeof是其最大字节成员的字节数。
- c语言笔记——运算符
- C语言笔记系列之三——运算符
- 【笔记-C语言】 运算符
- C语言学习笔记(运算符)
- 课堂笔记-C语言运算符
- c 语言笔记.变量与运算符
- C语言学习笔记——数据的类型、存储、作用域,运算符,表达式
- C语言学习笔记(七)——其他运算符
- (三十)C语言学习笔记(一)——类型、运算符与表达式
- 黑马程序员——C语言中进制转换的要素和运算符笔记+习题
- C语言算术运算笔记
- 【C语言】指针运算—— 算术运算,关系运算
- C语言运算符运算
- C语言运算符
- C语言运算符
- C语言运算符
- C语言运算符
- C语言运算符
- 七.javaWeb之应用中的路径问题
- 【Mybatis】——逆向工程
- MySQL5.6 选项和变量整理
- lintcode 69 二叉树的层次遍
- hdu 1043 Eight 经典八数码问题
- c语言笔记——运算符
- 魔法宝石
- 河南工业大学2017“玲珑杯”程序设计竞赛 03
- Oracle11g彻底删除
- (贪心)Supermarket
- java考题终极版
- 缓存那些事
- linux中fork
- CentOS7安装nginx+php+mysql/mariadb