简单二进制操作
来源:互联网 发布:泰坦尼克号真相 知乎 编辑:程序博客网 时间:2024/06/05 21:55
&,屏蔽码
|,设置
<<,>>左右移动
^, 两个数不同的设置为一
常用操作:因为初学,以后补充
简单函数练习:
#include <stdio.h>unsigned invert(unsigned , int, int);void pbin(unsigned x);unsigned getbits(unsigned x, int p, int n);unsigned setbits(unsigned x, int p, int n, unsigned y);int main(){ unsigned x = 79; int p = 4, n = 4; x = invert(x, p, n); pbin(x); return 0;}//将x从p位开始的n个数求反unsigned invert(unsigned x, int p, int n){ unsigned i = 0; i = getbits(x, p, n); return setbits(x, p, n, ~i);}//打印二进制void pbin(unsigned x){ if(x) pbin(x/2); else return; printf("%d",x%2);}//将x中从第p位开始的位设置为y中最右边n位的值unsigned setbits(unsigned x, int p, int n, unsigned y){ return ((y & ~(~0<<n))<<(p+1-n)) | (x & ((~0<<(p+1)) | (~(~0<<(p+1-n)))));}//得到第p位开始的n位(x, 4, 3)得到4,3,2位unsigned getbits(unsigned x, int p, int n){ return (x >> (p + 1 - n)) & ~(~0 << n);}
//右移的从左边冒出来unsigned rightrot(unsigned x, int p){ unsigned j = 0;for(; p; p--) { j = x & ~(~0 << 1); x = x >> 1; x = setbits(x, 31, 1, j); } return x;}
题目来自:《c程序设计语言》
阅读全文
0 0
- 简单二进制操作
- 二进制操作
- 简单的 二进制输出
- 二进制的简单运用
- netty 二进制简单通信
- 简单的二进制
- 实现简单的二进制
- 操作二进制数据
- 二进制格式文件流操作
- 二进制的一些操作
- C++常用二进制操作
- 二进制流操作(实例)
- 二进制读写图片操作
- 模拟二进制的"|" "&"操作
- 二进制流操作
- C 文件操作 二进制
- 图片二进制操作
- 二进制操作解析
- 计算机系统领域顶级会议--OSDI,SOSP
- txt日志功能
- C 标准库
- ccf201703-2
- jQuery基础总结(二)
- 简单二进制操作
- django -电子邮箱
- C语言为什么要加#include<stdio.h>(C语言基础结构知识)
- eclipse 安装 Python 开发插件
- BZOJ1087 [SCOI2005]互不侵犯King 状压dp
- 【JAVA】Builder模式
- 【UOJ #30】【CF Round #278】Tourists
- - (void)dealloc { __weak __typeof(self)weak_self = self; NSLog(@"%@", weak_self); }代码崩溃问题
- 关于土地革命、土地改革、三民主义两阶段民生等五个阶段中土地问题的总结