全国计算机等级考试二级教程-C语言程序设计_第15章_位运算
位运算,不适用于实数,仅仅适用于整数、字符。
C语言的位运算只能操作整数、字符,实数是指数方式表示的,不适用于位运算。
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h>
#include<stdlib.h> main()
{
unsigned int num = -; printf("%d,%u\n", num, num); system("pause");
}
输出结果:
-1,4294967295
请按任意键继续. . .
乱码
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h>
#include<stdlib.h> main()
{
printf("%d\n", 10.3); printf("%f\n", ); printf("%d\n", (int)10.3); printf("%f\n", (float)); system("pause");
};
原码
也叫 符号-绝对值码
最高位0表示正,1表示负,其余二进制位是该数字的绝对值的二进制位。
原码简单易懂
加减乘除复杂,存在加减乘除四种运算,增加了CPU的复杂度
零的表示不唯一
没有在计算机中应用
反码
反码运算不便,也没有在计算机中应用。
移码
移码表示数值平移n位,n称为移码量
移码主要用于浮点数的阶码的存储
补码
已知十进制求二进制
求正整数的二进制
除2取余,直至商为零,余数倒叙排序。
求负整数的二进制
先求与该负数相对应的正整数的二进制,然后将所有位取反,末尾加1,不够位数时,左边补1
求零的二进制
全是0
已知二进制求十进制
如果首位是0,则表明是正整数,按普通方法来求
如果首位是1,则表明是负整数,将所有位取反,末尾加1,所得数字就是该负数的绝对值。
1 按位取反~
0变1
1变0
之前左边省略的0,变1
2 左移<<
i<<1 表示把 i 的所有二进制位左移一位
左移 n 位相当于乘以 2 的 n 次方
面试题:
#include<stdio.h> main()
{
int i; i = i * ;
i = i << ; /* 请问上述两个语句,哪个语句执行的速度快 */
}
3 右移>>
右端(低位)移出的二进制数舍弃,左端(高位)移入的二进制分两种情况:对于无符号整数和正整数,高位补0;对于负整数,高位补1.
4 按位与&
类似逻辑与&&,相当于把每一位进行逻辑与&&
&i 取i的地址
i&j i按位与j
1&1==1
1&0==0
0&1==0
0&0==0
5 按位异或^
相同为0,不同为1
1^0==1
0^1==1
1^1==0
0^0==0
6 按位或|
类似逻辑或||,相当于把每一位进行逻辑或||
1|1==1
1|0==1
0|1==1
0|0==0
位运算的现实意义:
通过位运算符,我们可以对数据的操作精确到每一位
全国计算机等级考试二级教程-C语言程序设计_第15章_位运算的更多相关文章
- 全国计算机等级考试二级教程-C语言程序设计_第4章_选择结构
switch什么时候用break,什么时候不用break 调用break:一次执行一个分支,输入一个数据,对应一个级别 不调用break:连续执行多个分支 if...else 可以处理任何情况,大于小 ...
- 全国计算机等级考试二级教程-C语言程序设计_第8章_地址和指针
面试: unsigned int *p1 = # int *p2 = # #define _CRT_SECURE_NO_WARNINGS #include<std ...
- 全国计算机等级考试二级教程-C语言程序设计_第9章_数组
四维数组,可用于航天卫星,三维+时间 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> ...
- 全国计算机等级考试二级教程-C语言程序设计_第14章_结构体、共用体和用户定义类型
函数的返回值是结构体类型 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> struct ...
- 全国计算机等级考试二级教程-C语言程序设计_第10章_字符串
字符型指针数组 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> //参数中,int a ...
- 全国计算机等级考试二级教程-C语言程序设计_第5章_循环结构
for循环结构的嵌套 外层循环每循环一次,内层循环会完整循环一次. 外层循环是竖. 内层循环是横. for, do...while, while的选择: 如果有固定次数,如阶乘! ,判断素数,用 fo ...
- 全国计算机等级考试二级教程-C语言程序设计_第3章_顺序结构
1输入两个整数给变量x和y:然后输出x和y:在交换x和y中的值后,在输出x和y. #include <stdio.h> main() { int x, y, t; printf(" ...
- 全国计算机等级考试二级教程-C语言程序设计_第2章_C程序设计的初步知识
正负号与被除数一致. 3 % (-5) == 3 (-3) % 5 == -3 不用求余运算符,求出余数. int x, y; 答:x - x / y * y; const int i = 10; c ...
- 全国计算机等级考试二级教程-C语言程序设计_第7章_函数
函数执行,从右到左执行 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string.h> main() ...
随机推荐
- android TextView 垂直滚动 用动画实现
项目中需要让TextView 滚动一会显示一行一会显示一行 想了下用移动动画实现.但是实际中在整这个动画时调了好久.主要用到的动画方式是移动动画:TranslateAnimation 代码: PS: ...
- QT中嵌入SDL
原地址:http://www.qtcn.org/bbs/read.php?tid=23926 前段时间在做一个音视频编码板卡的PC跨平台程序,使用QT框架,其中有块功能是往QT里嵌入SDL,来播放YU ...
- C语言的本质(16)——函数接口的传入参数与传出参数
如果函数接口有指针参数,既可以把指针所指向的数据传给函数使用(称为传入参数),也可以由函数填充指针所指的内存空间,传回给调用者使用(称为传出参数),例如strcpy的函数原型为 char *strcp ...
- 13个JavaScript图表(JS图表)图形绘制插件
转自:http://blog.jobbole.com/13671/ 1. Flash 过去是最佳解决方案,但很多人多在从那迁移: 2. 现代浏览器及其更强大的计算能力,使其在转化绘制实时数据方面的能力 ...
- uva 10245 The Closest Pair Problem_枚举
题意:求任意两点之间的距离的最少一个距离 思路:枚举一下就可以了 #include <iostream> #include<cstdio> #include<cmath& ...
- 网易云课堂_C++开发入门到精通_章节2:引用和函数的高级用法
课时6函数重载 函数重载 在C语言头文件中的extern "C" //常见的C语言头文件格式 #ifndef _FUNC_ #define _FUNC_ #ifdef __cplu ...
- Altium designer使用技巧集(1)
1.如何生成PCB 先得新建个PCB文件(File-New-Pcb):然后保存下,在新建的PCB文件下:Design-Import Changes From PCB_PROJECT1.PRJPCB(D ...
- [置顶] viewPager控制滑动速度和时间
遇到如下问题:viewpager滑动时如果想跳过很多条直接到最后一条,中间会黑屏.黑屏是因为中间的view没有加载出来的缘故. stackOverflow上看到的解决方案,在这里记录一下, publi ...
- Shell命令行
利用wc命令统计文件行,单词数,字符数,利用sort排序和去重,再结合uniq可以进行词频统计. cat file.txt sort hello.c | uniq -c | sort -nr |hea ...
- web.config configSections自定义section
1.web.config 配置文件设置 <configSections> <!-- For more information on Entity Framework configur ...