C51 一个非常有用的位操作 --- 其中一位置 0 其它位不变

C51 一个非常有用的位操作 --- 其中一位置 0 其它不变

C51 中经常操作位,以下方法就非常方便,来自 1

s &= ~(1 << j) /* 将变量s的第j位置成0,其余位不变 */

活学活用

    // 开始 AD 转换
    ADCON0 |= ADCEN;
    // 等待 AD 转换完成
    while(!(ADCON0 & ADCI));
    // 软件清除 AD 中断标志
    ADCON0 &= ~ADCI;

  1. c的按位取反运算符(~) http://blog.51cto.com/ribut9225/77202?

原文地址:https://www.cnblogs.com/F4NNIU/p/9173716.html

时间: 2024-10-26 19:13:20

C51 一个非常有用的位操作 --- 其中一位置 0 其它位不变的相关文章

实现对一个数据(int)指定位置0或置1

/********************************************************************** * RightMove.cpp * Compiler: GCC,VS,VC6.0 win32 * Author:WK * Time: 2015 3 29 ************************************************************************/ #include<stdio.h> void bit

写一个函数找到给定字符串的位置

题目 给你一个排好序的并且穿插有空字符串的字符串数组,写一个函数找到给定字符串的位置. 例子:在字符串数组 [“at”, “”, “”, “”, “ball”, “”, “”, “car”, “”,“”, “dad”, “”, “”] 中找到”ball”,返回下标4. 例子:在字符串数组 [“at”, “”, “”, “”, “”, “ball”, “car”, “”, “”, “dad”, “”, “”] 中找到”ballcar”,查找失败,返回-1. 解答 字符串数组已经是有序的了,所以,还

判断一个字符串通过变化字符的位置,是否可以组成回文

解法就是判断下字符串中是否有某些字符是奇数个,如果这种字符的个数大于1,说明无法组成回文:小于或等于1可以组成回文. 其中用了strlen(),放到for循环里面容易导致程序运行效率下降,比如输入的字符串很大 10^5个字符时 for(int i=0; i<strlen(string); i++)会导致程序运行很慢.改用: int length = strlen(string); for(int i=0; i<length; i++) 可以很大程度提升效率. #include <stdi

WCF技术剖析之三十:一个很有用的WCF调用编程技巧[下篇]

原文:WCF技术剖析之三十:一个很有用的WCF调用编程技巧[下篇] 在<上篇>中,我通过使用Delegate的方式解决了服务调用过程中的异常处理以及对服务代理的关闭.对于<WCF技术剖析(卷1)>的读者,应该会知道在第7章中我通过类似于AOP的方式解决了相似的问题,现在我们来讨论这个解决方案. 通过<服务代理不能得到及时关闭会有什么后果?>的介绍,我们知道了及时关闭服务代理的重要意义,并且给出了正确的编程方式.如果严格按照上面的编程方式,就意味着对于每一个服务调用,都要

WCF技术剖析之三十:一个很有用的WCF调用编程技巧[上篇]

原文:WCF技术剖析之三十:一个很有用的WCF调用编程技巧[上篇] 在进行基于会话信道的WCF服务调用中,由于受到并发信道数量的限制,我们需要及时的关闭信道:当遇到某些异常,我们需要强行中止(Abort)信道,相关的原理,可以参考我的文章<服务代理不能得到及时关闭会有什么后果?>.在真正的企业级开发中,正如我们一般不会让开发人员手工控制数据库连接的开启和关闭一样,我们一般也不会让开发人员手工去创建.开启.中止和关闭信道,这些工作是框架应该完成的操作.这篇文章,我们就来介绍如果通过一些编程技巧,

【C语言】请编写实现以下功能函数:实现对一个8bit数据(unsigned char)的指定位(例如第8位)的置0或置1操作,并保持其他位不变

/*请编写实现以下功能函数:实现对一个8bit数据(unsigned char)的指定位(例如第8位)的置0或置1操作,并保持其他位不变. 函数原型:void bit_set(unsigned char *p_date,unsigned char position,int flag). 函数参数说明:p_date是指定数据源,position是指定位(1~8),flag是置0或置1. */ #include <stdio.h> void bit_set(unsigned char *p_dat

一个非常有用的函数——COALESCE

转:http://blog.csdn.net/dba_huangzj/article/details/8300784 很多人知道ISNULL函数,但是很少人知道Coalesce函数,人们会无意中使用到Coalesce函数,并且发现它比ISNULL更加强大,其实到目前为止,这个函数的确非常有用,本文主要讲解其中的一些基本使用: 首先看看联机丛书的简要定义: 返回其参数中第一个非空表达式 语法: COALESCE ( expression [ ,...n ] ) 如果所有参数均为 NULL,则 CO

一个很有用的辅助类 -- 门槛类实现

门(槛)是个很有特点的事物,只要它没有上锁,你一推就进.如上了锁,你就要先开了锁才能进.如果很不幸的这个门有多把锁,就要把上面所有的锁都打开才行. 下面我们就来用c#实现门(槛)类: 一.分析 门类:它有个状态--开着/关闭,有人会说那用一个bool变量不就行了. NO No,我这个门是可以上锁的,而且上锁的数量是不限的.第把锁都只有用对应的key的才能打开. 所以我这个是只要上一把锁就是关上了:要打开的话,却要解开所有已加在这个门上的锁.当然有时候你也可破门而入.这是不是和bool变量不一样呢

如何 distinct 只对一个字段有用,同时查出其他字段

转自https://blog.csdn.net/longxingzhiwen/article/details/79171520 在使用MySQL时,有时需要查询出某个字段不重复的记录,虽然mysql提供 有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值. distinct只能返回它的目标字段,而无法返回其它字段.用distinct不能解决的话,我只有用二重循环查询来解决,而 这样对于一个数据量非常大的站来说,无疑是