c语言中的位运算与进制(一)
来源:互联网 发布:ai软件什么时候上市 编辑:程序博客网 时间:2024/06/03 19:48
位运算:(需转换为二进制)
左移:<<、右移:>>、按位与:&、按位或:|、按位取反:~、按位异:^
1<<16意为:16的二进制表示形式0b10000向左移一位,相当于十进制的16/2.
16>>1意为:16的二进制表示形式0b10000向右移一位,相当于十进制的16*2.
16&15意为:16的二进制表示形式0b10000与15的二进制表示形式0b1111,如果同位数的值相同为1,不同为0,结果为0
16|15意为:16的二进制表示形式0b10000与15的二进制表示形式0b1111,同位数只要有一个是1,那么该位就是1,同位数都是0,那么就是0,结果为0b11111即31
~16意为:16的二进制表示形式0b0000 0000 0000 0000 0000 0000 0001 0000,每位都取反,结果为0b1111 1111 1111 1111 1111 1111 1110 1111即-17
16^15意为:16的二进制表示形式0b10000与15的二进制表示形式0b1111,同位数相同为0,不同为1,结果为0b11111即31
16^31:16的二进制表示形式0b10000与31的二进制表示形式0b11111,结果为0b1111即15,发现16^15^16 = 15
其它运算符:
1. sizeof:用来表示所占字节数。
sizeof使用注意:
sizeof(int)是允许的,但是sizeof int为错误写法。
2. &:取出变量的内存地址。具体用在:直接取内存地址、用到scanf时、指针等。数据的隐式转换和显式转换,类型转换最好是由低到高。
3. ++a与a++在运算时的区别:区别在参与运算时,++a会把自加后的值参与运算;a++则不会
4. 逻辑运算的 &&当前面一个条件不满足时,后面的不会执行;||第一个条件满足后,后面的条件也不会执行
5、C语言中”真“、”假“是用”1“、”0“表示。
6、逻辑运算和位运算的区别:逻辑运算是对条件的判断;位运算是把十进制转换为二进制然后对数据进行操作。
进制:
进制常用的有十进制、二进制、八进制、十六进制等。十进制的数字表示为0~9;二进制数字表示为0、1;八进制数字表示为0~7;十六进制表示为0~9,a~f。
C语言中各进制表示如:
int a = 6 ; //默认定义是十进制
int b = 0b1101 ; //二进制以0B或0b开头
int c = 07 ; //八进制以0开头
int d = 0x 16e ; //十六进制以0x或0X开头
其中以十进制和二进制应用频率最高。
十进制转二进制:
1、正整数十进制转二进制:
将需要转换的正整数一直除2取余,知道为0或1,右下到上将余数排列即可求出这个正整数的二进制表示。计算机中int有32位,其中首位0代表正整数,1代表负数。
例:
15的二进制表示为0000 0000 0000 0000 0000 0000 0000 1111
2、负数十进制转二进制;
1>原码:负数取绝对值用二进制表示。
例:-17取绝对值17,表示为0000 0000 0000 0000 0000 0000 0001 0001
2>反码:得到绝对值二进制取反,例:17取反为1111 1111 1111 1111 1111 1111 1110 1110
3>补码:取反数值补1,例:-17最后得到结果 1111 1111 1111 1111 1111 1111 1110 1111
二进制转十进制:
从右向左用二进制的每个数乘以2的对应次方。
例:
11101二进制转十进制1*2^0+0*2^1+1*2^2+1*2^3+1*2^4=29
- c语言中的位运算与进制(一)
- C语言中的位运算
- C语言中的位运算
- C语言中的位运算
- C语言中的位运算
- C语言中的位运算
- C语言中的位运算
- C语言中的位运算
- C语言中的位运算
- C语言中的位运算
- C语言中的位运算
- C语言中的位运算
- C语言中的位运算
- C 语言中的 位运算
- C语言中的位运算
- C语言中的位运算& ^ |
- C语言中的位运算
- C语言中的位运算
- 机器学习and深度学习学习资料
- 面试题:List去重,不可不知的五种方法
- shell采集系统cpu 内存 磁盘 网络信息
- 依赖注入和控制反转的理解
- 欢迎使用CSDN-markdown编辑器
- c语言中的位运算与进制(一)
- 【树】Level_Order_Traversal
- 秒表
- Java实现zip文件解压[到指定目录]
- HDU1017Java
- 51nod 1230 幸运数 数位dp
- kafka java 生产消费程序demo示例
- 树形DP- Anniversary party
- Ubuntu14.04 Pycharm安装及no jdk found解决方法