获取二进制或者16/32位的某一位的值
- 主要是按位与,这样可以把某一位的值给算出来;
- 1&1 = 1; 1&0 = 0;可以看出1与上0/1都等于其本身
- 直接上代码
- 推荐:免费的C语言和linuxPDF文档:传送门
//获取二进制某一位的值
uint8_t get_one_bit_value(uint32_t src, uint8_t bit_num)
{return (uint8_t)((src >> (bit_num - 1)) & 1);
}
int main()
{uint32_t test_v = 0x12345678; //0001[1] 0010[2] 0011[3] 0100[4] 0101[5] 0110[6] 0111[7] 1000[8]uint8_t i, j; uint8_t test_buff[32];for (i = 1; i <= 32; i++){test_buff[i - 1] = get_one_bit_value(test_v, i);}for (i = 1; i <= 8; i++){for (j = 1; j <= 4; j++){printf("%d|", test_buff[(i - 1) * 4 + (j - 1)]);}printf("\n");}
}
打印结果:
//注意打印低位在左
//因为打印的第一位是最低位以此类推
|0|0|0|1| [8]
|1|1|1|0| [7]
|0|1|1|0| [6]
|1|0|1|0| [5]
|0|0|1|0| [4]
|1|1|0|0| [3]
|0|1|0|0| [2]
|1|0|0|0| [1]
获取二进制或者16/32位的某一位的值相关推荐
- 设置二进制或者16/32位的某一位的值
设置某一位的值 传送门:获取二进制或者16/32位的某一位的值 1 | 任何值 = 1 ,任何值&0 = 0 [利用这两点进行设置值] 上代码 //获取二进制某一位的值 uint8_t get ...
- 8/16/32/64位单片机区别
32位处理器 首先处理器都是8的倍数:8/16/32/64.表示一个时钟周期里,处理器处理的代码数. 8位机有8条线路,每个时钟周期有8个电信号,组成一个字节.8-32,则每个时钟周期从传输1个字节到 ...
- War of Inazuma (Easy Version) 阅读理解-n维超立方体-二进制-longlong右移32位
这个地方的地图可以被看作一个n维超立方体,有着恰好2n2^n2n个点.每个顶点编号从0到2n−12^n-12n−1.当且仅当两个顶点在二进制表示下仅有一位不同时这两个顶点相邻. 在战争中,每个点都被敌 ...
- 汇编语言——16位寄存器实现32位二进制数左移4位。
问题描述 16位寄存器实现32位二进制数左移4位. 源代码 MOV CL, 04 SHL DX, CL MOV BL, AH SHL AX, CL SHR BL, CL OR DL, BL 说明: ...
- 从16位到32位再到64位,为何16年过去,依然没有128位系统出现?
绝大部分人都没有意识到128位的处理器早已经存在了,并且已经存在了几十年.这么多年过去了,不光是128位的处理器出现了,256位.512位的处理器也同样出现了,比如Nvidia GTX 280这样的显 ...
- 8位深, 16位深,24位深,32位深图片显示原理及对比
我们都知道一张图片可以保存为很多种不同的格式,比如bmp/png/jpeg/gif等等.这个是从文件格式的角度看,我们抛开文件格式,看图片本身,我们可以分为8位, 16位, 24位, 32位等. 单击 ...
- 编写函数unsigned int reverse_bit(unsigned int value),实现无符号二进制整数在32位机器上的bit位翻转
编写函数unsigned int reverse_bit(unsigned int value),实现无符号二进制整数在32位机器上的bit位翻转 如: 在32位机器上25这个值包含下列各位: 000 ...
- c语言16左移3位,点阵16*32综合(间断、上移、下移、左移、右移、左拉、右拉)C程序...
点阵16*32综合(间断.上移.下移.左移.右移.左拉.右拉)C程序,硬件电路:行驱动74HC154+S8550三极管,列驱动74HC595,具体原理图祥见:http://www.51hei.com/ ...
- PWN入门(5)32位程序与64位程序和构造ROP链
简介 "pwn"这个词的源起以及它被广泛地普遍使用的原因,源自于魔兽争霸某段讯息上设计师打字时拼错而造成的,原先的字词应该是"own"这个字,因为 'p' 与 ...
最新文章
- windows下mysql-8.0.11-winx64解压版配置
- linux mint系统分区,Win7删除了linuxmint的系统分区如何恢复
- MySQL探秘(五):InnoDB锁的类型和状态查询
- 微机原理换行代码_东华大学微机原理课程设计--代码转换
- django admin使用在前端_Django| 给你博客装个Markdown编辑器
- c++11中的智能指针
- c语言构建栈_选择技术栈构建通用平台
- 在java中使用quartz_如何在Java中使用Quartz Scheduler框架运行cron作业?
- 【C++基金会 06】explictkeyword
- 推荐轻量高效无依赖的开源JS插件和库
- 1500个常用计算机单词
- 【转】宽带路由器应用(三)—ARP欺骗防护功能的使用
- [转载] iOS直播相关,感觉有点用
- CodeForces 596B Wilbur and Array 贪心
- Python连接MySQL数据库及其操作
- 看书必备epub阅读器
- 从苏宁电器到卡巴斯基第26篇:难忘的三年硕士时光 IV
- 机器学习算法有哪些?
- 不懂TDK优化?一文教你学会如何做TDK优化
- 韦东山二期驱动视频-热拔插驱动——RK3399自制linux系统不支持HDMI热拔插问题分析