当前位置: 网站首页>网站建设>网店装修

【网站优化】克孜勒苏做网站/制作网站/搭建网站/设计网站/开发网站-网站服务一站式【简单基础中小型网站】

发表日期: 2022-09-01 14:33:43 浏览次数:102

上往建站提供网站建设网站推广网店设计网站建设企业网站网站制作网页设计网站建设企业网站制作网页制作   高端定制网站建设H5页面设计开发微网站微信运营移动端设计开发手机端网站小程序,致力于苏州企业网站建设与公司网站制作,全国用户超10万,10余年的网站开发和建站经验,主营:网站建设网络推广微信公众号代运营、商城小程序开发定制网店设计等业务,专业团队服务,效果好。。

服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)

克孜勒苏做网站/制作网站/搭建网站/设计网站/开发网站-网站服务一站式

网站建设.png

  1. 利用异或 ^ 来交换两个数的值,而且不引入其他变量。

    unsigned int a=60;  //0011 1100unsigned int b=13;  //0000 1101a=a^b;              //a=a^b=0011 0001b=a^b;              //b=a^b=0011 1100  相当于b1=(a^b)^ba=a^b;              //a=a^b=0000 1101  相当于a1=(a^b)^((a^b)^b)

    实例

    #include<stdio.h>int main( ){    unsigned int a=60;         //0011 1100    unsigned int b=13;         //0000 1101    printf("a=%d,b=%d",a,b);   //输出a,b的值    printf("
    ");    a=a^b;                     //a=a^b=0011 0001    b=a^b;                     //b=a^b=0011 1100    a=a^b;                     //a=a^b=0000 1101    printf("a=%d,b=%d",a,b);   //输出a,b的值}

    结果:

    a=60,b=13;a=13,b=60;

    仅用一行代码实现的方法:

    a^=b^=a^=b;

    其等价于:

    a=a^b;b=a^b;a=a^b;

    当然,这种利用位运算的交换方法只适用于整型变量,不能用于浮点型变量!

    sfvx

       sfvx

      268***0313@qq.com

    5年前 (2017-09-13)
  2.    BeanShell

      286***384@qq.com

    137

    利用位与 & 运算,判断一个整数是否是2的整数次幂。

    二进制数的位权是以2为底的幂,如果一个整数 m 是 2 的 n 次幂,那么转换为二进制之后只有最高位为 1,其余位置为 0,再观察 m-1 转换为二进制后的形式以及 m&(m-1) 的结果,例如:

    2 --> 0000 0010        1 --> 0000 0001        2&1 --> 0000 0010 & 0000 0001 = 04 --> 0000 0100        3 --> 0000 0011        4&3 --> 0000 0100 & 0000 0011 = 08 --> 0000 1000        7 --> 0000 0111        8&7 --> 0000 1000 & 0000 0111 = 0

    可以看出所有的 1 完美的错过了,根据位与的特点可知 m&(m-1) 的结果为 0。

    如果整数 m 不是 2 的 n 次幂,结果会怎样呢?例如 m=9 时:

    9 --> 0000 1001        8 --> 0000 1000        9&8 --> 0000 1001 & 0000 1000 != 0

    利用这一特点,即可判断一个整数是否是2的整数次幂。

    示例:

    int func(int num){
        return ((num > 0) && ((num & (num - 1)) == 0));//2的n次幂大于0}

    返回值为 1,则输入的正整数为 2 的整数次幂,返回值为 0 则不是。

    BeanShell

       BeanShell

      286***384@qq.com

    5年前 (2017-11-04)
  3.    布克F91

      335***443@qq.com

    74

    对取余运算的说明

    取余,也就是求余数,使用的运算符是 %。C 语言中的取余运算只能针对整数,也就是说,% 的两边都必须是整数,不能出现小数,否则编译器会报错。

    另外,余数可以是正数也可以是负数,由 % 左边的整数决定:

    请看下面的例子:

    #include <stdio.h>int main(){
        printf( "100%%12=%d 
    100%%-12=%d 
    -100%%12=%d 
    -100%%-12=%d 
    ", 100%12, 100%-12, -100%12, -100%-12 );
        return 0;}

    运行结果:

    100%12=4100%-12=4-100%12=-4-100%-12=-4
    布克F91

       布克F91

      335***443@qq.com

    4年前 (2018-06-13)
    •  如果 % 左边是正数,那么余数也是正数;

    •  如果 % 左边是负数,那么余数也是负数;

  4.    forspy

      qiu***@126.com

    31

    对于 2 的幂指数的详细程序

    #include <stdio.h>int num;int func(int num){    if ((num>0)&&(num&(num-1))==0)    {        printf("%d是2的整数次幂",num);    }    else    {        printf("%d不是2的整数次幂",num);    }    return((num>0)&&(num&(num-1))==0);}int main(){    printf("请输入要查询的数
    ");    scanf("%d",&num);    func(num);}
    forspy

       forspy

      qiu***@126.com

    4年前 (2018-07-06)
  5.    RES

      432***967@qq.com

    26

    不同长度的数据进行位运算

    如果两个不同长度的数据进行位运算时,系统会将二者按右端对齐,然后进行位运算。

    以“与”运算为例说明如下:我们知道在 C 语言中 long 型占 4 个字节,int 型占 2 个字节,如果一个 long 型数据与一个 int 型数据进行“与”运算,右端对齐后,左边不足的位依下面三种情况补足:

    •  (1)如果整型数据为正数,左边补 16 个 0。


不同长度的数据进行位运算


如果两个不同长度的数据进行位运算时,系统会将二者按右端对齐,然后进行位运算。


以“与”运算为例说明如下:我们知道在 C 语言中 long 型占 4 个字节,int 型占 2 个字节,如果一个 long 型数据与一个 int 型数据进行“与”运算,右端对齐后,左边不足的位依下面三种情况补足:


 (1)如果整型数据为正数,左边补 16 个 0。

 (2)如果整型数据为负数,左边补 16 个 1。

 (3)如果整形数据为无符号数,左边也补 16 个 0。

如:long a=123;int b=1; 计算 a & b。


如:long a=123;int b=-1; 计算 a & b。


如:long a=123; unsigned int b=1; 计算 a & b。


RES

   RES


  432***967@qq.com


4年前 (2018-07-16)

   荒城梦呓


  449***19@qq.com


38

| 和 ||,& 和 && 的区别


我们将 || 和 && 定义为逻辑运算符,而 | 和 & 定义为位运算符。


&& 如果两个操作数都非零,则条件为真;


|| 如果两个操作数中有任意一个非零,则条件为真。


& 按位与操作,按二进制位进行"与"运算。运算规则:(有 0 则为 0)


0&0=0;   

0&1=0;    

1&0=0;     

1&1=1;

| 按位或运算符,按二进制位进行"或"运算。运算规则:(有 1 则为 1)


0|0=0;   

0|1=1;   

1|0=1;    

1|1=1;

那么,问题来了,在判断语句中,用 | 还是 ||,& 还是 &&?


判断语句中为布尔类型,值只有 true 和 false(如果变量值为 0 就是 false,否则为 true)


举个例子,a=1 b=2

所以 a>0 这个值为true    b>1 这个值为true     b>2 这个值为 false

如 if(a>0&b>1)  我们可以得出 if(true&true),条件成立(true不为0,所以true&true不为0)

如 if(a>0&&b>1)  我们可以得出 if(true&&true),条件成立(&&两边操作数都非零,所以条件成立)

如 if(b>2&a>0) 我们可以得出 if(false&true),条件不成立(false为0,false&true为0,条件不成立)

如 if(b>2&&a>0) 我们可以得出 if(false&&a>0),条件不成立(&&左侧为false,&&运算到此结束,条件不成立)

可以看出 & 和 && 在判断语句中都可以实现“和”这个功能,不过区别在于 & 两边都运算,而 && 先算 && 左侧,若左侧为 false 那么右侧就不运算了。因此从效率上来说,判断语句中推荐使用 &&(换句话就是逻辑运算就老老实实用逻辑运算符,不然它为啥叫逻辑运算符呢?)


而 | 和 || 的比较与上类似,不做赘述。


荒城梦呓

   荒城梦呓


  449***19@qq.com


4年前 (2018-08-26)

   chiu


  amo***@126.com


49

a++ 与 ++a 区别在于一个后加,一个先加。


a++ 输出 a 的值再自加,缓存 a 自加后的结果,用于下次进行与 a 相关的计算。


++a 则相当于 a+1。


#include <stdio.h>


int main(int argc, char **argv) {

    int a=100;

    int b=50;

//    b++;

    printf("%d,%d ",a++,++a);

    printf("%d,%d",b++,++b);

    return 0;

}

运行后输出:


101,102

51,52

若不注释 b++:


int main(int argc, char **argv) {

    int a=100;

    int b=50;

    b++;

    printf("%d,%d ",a++,++a);

    printf("%d,%d",b++,++b);

    return 0;

}

则结果为:


101,102

52,53

chiu

   chiu


  amo***@126.com


4年前 (2018-12-21)


克孜勒苏做网站/制作网站/搭建网站/设计网站/开发网站-网站服务一站式


上往建站提供微信小程序+公众号商城+企业网站建设一站式微信网站商城营销系统,微信小程序是一种依附于微信体内即点即用,无需下载安装即可使用的轻应用,它开启了移动端“触手可及”的梦想,致力于苏州企业网站建设与公司网站制作,全国用户超10万,10余年的网站开发和建站经验,主营:网站建设微信公众号代运营商城小程序开发定制网店设计等业务,专业团队服务,效果好。

服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)


400-111-6878
服务热线
顶部

备案号: 苏ICP备2021016738号-6

CopyRight © 2021 上往建站 All Right Reserved 未经许可不得复制转载

24小时服务热线:400-111-6878   E-MAIL:1120768800@qq.com   QQ:1120768800

  网址: https://www.768800.club  网站建设上往建站

关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|

企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|

400电话办理| 书生商友软件|

预约专家

欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系

  

全国服务热线:400-111-6878