解析取模运算% 和位与运算& 之间的关系详解

2016-02-19 09:06 37 1 收藏

今天图老师小编给大家展示的是解析取模运算% 和位与运算& 之间的关系详解,精心挑选的内容希望大家多多支持、多多分享,喜欢就赶紧get哦!

【 tulaoshi.com - 编程语言 】

代码如下:

#include stdio.h

int main (void)
{
    unsigned int MAX = 32;
    unsigned int index = 31;

    index = 31;
    index = (index + 1) % MAX;  // 这个容易理解
    printf ("index = %dn", index);

    index = 31;
    index = (index + 1) & (MAX - 1);  // 这个运算效率高 
    printf ("index = %dn", index);

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

    return;    
}

$ ./a.exe
index = 0
index = 0

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

来源:https://www.tulaoshi.com/n/20160219/1589579.html

延伸阅读
整数间执行除法运算时,要使用""而不是"/"。"/"运算符要求返回一个单一数值,所以,表面上看似简单的一行代码: C=A/B 实际上包含了3个隐含的转换操作:2个为除法运算做准备,从Integer转换到Single;一个完成最后的赋值操作,从Integer转换到Single。但是如果使用了""操作符,情况就大不相同了!不仅不会有这么多中间步骤,...
标签: Web开发
在cssrain整理的一个 试题集 中有这么一道题: SCRIPT LANGUAGE="JavaScript" var a = 0; var b = -1; var c = 1; function assert (aVar) { if (aVar==true)     alert(true); else     alert(false); } assert(a) ; assert(b) ; assert(c) ; /SCRIPT 运行代码框 SCRIPT LANGUAGE=&...
什么是空指针常量(null pointer constant)? [6.3.2.3-3] An integer constant expression with the value 0, or such an expression cast to type void *, is called a null pointer constant. 这里告诉我们:0、0L、'\0'、3 - 3、0 * 17 (它们都是“integer constant expression”)以及 (void*)0 (tyc: 我觉得(void*)0应该算是一个空...
自定义类的赋值运算符重载函数的作用与内置赋值运算符的作用类似,但是要要注重的是,它与拷贝构造函数与析构函数一样,要注重深拷贝浅拷贝的问题,在没有深拷贝浅拷贝的情况下,假如没有指定默认的赋值运算符重载函数, !-- frame contents -- !-- /frame contents -- 那么系统将会自动提供一个赋值运算符重载函数。 ...
代码如下: public class DBOpenHelper extends SQLiteOpenHelper {  // 类没有实例化,不能用作父类构造器的参数,必须声明为静态  public DBOpenHelper(Context context, int version) {   super(context, "SQLite.db", null, version);   // 第三个参数CursorFactory指定在执行查询时获得一个游标实例的工厂...

经验教程

922

收藏

25
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部