Given an integer (signed 32 bits), write a function to check whether it is a power of 4. Example: Given num = 16, return true. Given num = 5, return false. Follow up: Could you solve it without loops/recursion? 我的解法极其垃圾,建议不要看. public class Solution {…
unsigned int v; // 判断v是否为2的幂 bool f; // f为判断的结果 f = (v & (v - 1)) == 0; // 结果为0表示不是2 的幂 // 改变表示方法,可以使用下面的方法: f = v && !(v & (v - 1));…
判断两整数是否异号: int x, y; //输入比较的两数 bool f = ((x ^ y) < 0); // 返回真,当且仅当x与y异号 说明:当x.y异号,x与y的最高位分别为0和1,取"^"后为1,结果为负数 不用选择语句得到指定整数的绝对值: int v; // 需要得到整数v的绝对值 unsigned int r; // r保存结果 int const mask = v >> sizeof(int) * CHAR_BIT - 1; r = (v + ma…
关于衡量计算操作的方法: 当为算法统计操作的数量的时候,所有的C运算符被认为是一样的操作.中间过程不被写入随机存储器(RAM)而不被计算,当然,这种操作数的计算方法,只是作为那些接近机器指令和CPU运行时间的服务.所有的操作被假设成花相同的运行时间,事实上是不正确的.有很多不同的因素决定一个系统能多快运行一段样例代码,例如:缓存大小,内存带宽,指令集合等等--.最后,建立一套标准才是衡量一种方法快过另一种方法的最好方法. 判断一个整数的符号: int v; // v为我们要判断的整数 int s…
POJ3641 Pseudoprime numbers p是Pseudoprime numbers的条件: p是合数,(p^a)%p=a;所以首先要进行素数判断,再快速幂. 此题是大白P122 Carmichael Number 的简化版 /* * Created: 2016年03月30日 22时32分15秒 星期三 * Author: Akrusher * */ #include <cstdio> #include <cstdlib> #include <cstring&g…
前言: Linux中的文件管理子系统的权限管理,想必大家都知道:rwx分别代表read(可读),write(可写), execute(可执行,如果是可执行程序的话),其中rxw可以按照数字表示: r  -------------  4 w -------------  2 x  -------------  1 如果有可读,可写,可执行权限,则用7表示... 在最近的项目中,就遇到了这样的问题:我们做是IOT的硬件报警设备,现在一共有7种报警类型,每种设备报警的可能有:1种,多种或者0种,后台返…
142-O(1)时间检测2的幂次 用 O(1) 时间检测整数 n 是否是 2 的幂次. 样例 n=4,返回 true; n=5,返回 false. 挑战 O(1) time 标签 比特位操作 思路 使用位操作, 2 的幂次的 2 进制形式中只包含一个 1,如1(0001),2(0010),4(0100).其他数包含多个 1(0除外),如3(0011),所以只需要将 n 与 n-1 逐位与,即可判定. code class Solution { public: /* * @param n: An…
一.python的历史 python的创始人Guido van Rossum,现就职于Dropbox公司. 1989年12月份诞生了python1.0 2000年10月16日发布了python2.0 2008年发布python3.0,但由于3.0不兼容当时的2.4,因此推广非常缓慢. 为解决此问题,当年便推出了python2.6版本,其兼容了2.4和3.0两个版本.在这之后又推出了python2.7,支持了更过的3.x版本的特性.但随着python3的推广,python2终将会被取代,毕竟,py…
关于cjson的介绍和使用方法就不在这里介绍了,详情请查看上一篇博客cjson使用方法. JSON的内存结构像广义表,可以认为是有层次的双向链表. cJSON程序中的细节点如下: 大量宏替换 大量静态函数 错误处理机制 字符串处理时存在utf16转utf9,编码转换 用函数指针封装malloc,free,方便用于处理,比如在申请后初始化,或者释放前进行一些处理等. cJSON中的重要接口函数如下: 解析函数 cJSON * cJSON_Parse(const char *value); 打印函数…
cJSON源码分析 简介 由于C语言汇总,没有直接的字典,字符串数组等数据结构,所以要借助结构体定义,处理json. JSON是一种轻量级的数据交换格式.JSON采用完全独立与语言的文本格式,易于人阅读和编写.同时也易于机器解析和生成.它是基于JavaScript,Programming Language,Standard ECMA-262 3rd Edition -December 1999的一个子集.JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(如C,C++,C+…