当前位置: 首页 > wzjs >正文

天津市武清区建设银行网站如何制作网址

天津市武清区建设银行网站,如何制作网址,建设者网站,系统下载官网统计整数在二进制中1的个数&#xff1a; 这是上一篇文章留下的问题&#xff0c;这里为大家作答&#xff1a; //统计二进制中1的个数 int statistics(int a) {int count 0;for (int i 0; i < 32; i){if (a & 1){count;}a a >> 1;}//while (a)//{// a a &…

统计整数在二进制中1的个数:

这是上一篇文章留下的问题,这里为大家作答:

//统计二进制中1的个数
int statistics(int a)
{int count = 0;for (int i = 0; i < 32; i++){if (a & 1){count++;}a = a >> 1;}//while (a)//{//	a = a & (a - 1);//每次都会消去一个1//	count++;//}return count;
}
int main() 
{int a = 0;scanf("%d", &a);int num = statistics(a);printf("%d\n", num);
}

未被注释的部分就是运用位操作符实现的代码,注释的部分也是一种方法,但是这种方法很少被想到。

赋值操作符

赋值操作符就是 =   可以为变量赋上一个自己满意的值:

int num;
num = 10;//这就是赋值

并且赋值可以连续使用:

int a;
int b;
int c;
a = b = c+1;

但是同样的意思下分开写不是更让人知道且易于调试:

a = b;
b = c+1;

复合赋值符

+=-=*=/=%=>>=<<=&=|=^=

这些都是复合赋值操作符

单目操作符

! 逻辑反操作-  负值+  正值&  取地址sizeof  操作数的类型长度(以字节单位)~  对一个数的二进制按位取反(~0  就是  -1)--  前置或后置--++  前置或后置++*  解引用操作符(类型)   强制类型转换

特别重点:sizeof和数组

来看一段代码:这里的1 2 3 4 会输出什么?

void teer1(int arr[])
{printf("3:%d\n", sizeof(arr));
}
void teer2(char arr[])
{printf("4:%d\n", sizeof(arr));
}int main()
{int arr1[10] = { 0 };char ch[10] = { 0 };printf("1:%d\n", sizeof(arr1));printf("2:%d\n", sizeof(ch));teer1(arr1);teer2(ch);}

 我们说过数组名其实是首元素的地址,但是sizeof是一个特例,sizeof计算的是整个数组,但是函数传参传的是数组名也就是地址,地址的大小都是一样的。

关系操作符

>>=<<=!===

注意:==才是比较 ,= 是赋值

逻辑操作符

&&||

逻辑与,逻辑或的特点:

#include<stdio.h>int main()
{int i = 0, a = 0, b = 2, c = 3, d = 4;i = a++ && ++b && d++;//逻辑与&& 如果前面已经知道为假了,后面就都不会计算了。printf("a=%d,b=%d,c=%d,d=%d\n", a, b, c, d);}

#include<stdio.h>int main()
{int i = 0, a = 0, b = 2, c = 3, d = 4;i = a++ || ++b || d++;//逻辑或|| 如果知道前面有一个为真了,后面也不会计算了。printf("a=%d,b=%d,c=%d,d=%d\n", a, b, c, d);}

 条件操作符

exp1 ? exp2 : exp3;

条件操作符,最常用的方式就是找两个数的最大数:

int a = 5;int b = 6;int i = 0;i = a > b ? a : b;

 逗号表达式

exp1,exp2,exp3,.......

逗号表达式就是用逗号把多个表达式隔开,是从左向右依次执行,整个表达式的结果是最后一个表达式的结果。

int a = 1;int b = 2;int c = (a>b,a=b+10,b=a+1);

上述代码中,c 是多少? 答案是13。

表达式求值

隐式类型转换:

C语言中整数运算是以整形类型精度进行的,为了这个精度,表达式中的字符和短整型在使用前会被转换为普通整形,这种转换被叫做整形提升

char a,b,c;.......a = b + c;

b 和 c 就会被提升为普通整形,然后在执行加法,加法之后结果会被截断,然后再存储在a 中。

如何整形提升的

整形提升是按照变量的数据类型的符号位来提升。(符号位就是二进制最左边的数字,1即负,0即正

char c1 = -1;变量从c1的二进制补码是8个比特位11111111因为char是有符号的char
所以高位补充符号位,即1:11111111111111111111111111111111char c2 = 1;变量c2的二进制补码也是8个比特位00000001因为是有符号的char
所以高位补充符号位,即0:00000000000000000000000000000001

算术转换:

如果某个操作符的各个操作数属于不同的类型,那么必须进行操作数的类型转换,否则无法进行操作,下面是寻常算术转换:

long doubledoublefloatunsigned long intlong int unsigned intint

如果在这个排行中排名低,那么要转换成高的才可以进行运算。

算术转换要合理,要不然有潜在问题

操作符的属性

复杂表达式的求值有三个影响的因素:

1.操作符的优先级

2.操作符的结合性

3.是否控制求值顺序

注意:函数的调用先后顺序无法通过操作符的优先级确定,类如下面代码就是有问题的:

int fun()
{static int count = 1;return ++count;
}int main()
{int answer;answer = fun() - fun() * fun();printf("%d\n", answer);
}

总结:两个相邻的操作符先执行哪个,取决于优先级,如果相同,取决于他们的结合性(可以在网上查)。如果我们的表达式无法通过操作符的属性确定唯一的计算路径,那么就是有问题的。

http://www.dtcms.com/wzjs/350166.html

相关文章:

  • 徐州做网站那家好河源网站seo
  • 哪里有做桥梁模型的网站营销型高端网站建设
  • 制作微信网站模板免费下载网络宣传渠道有哪些
  • 门户网站建设关键点宁波seo关键词费用
  • 公司网站制作公免费友情链接
  • 瑞安市建设工程质量监督站网站seo服务优化
  • 网站建设与管理管理课程百度搜索入口官网
  • 深圳专业做网站的公司有哪些线在科技成都网站推广公司
  • 用vs2010做网站网络营销方案设计毕业设计
  • wordpress 插件 code冯耀宗seo视频教程
  • 建站网址什么意思cnn头条新闻
  • 拥有服务器后如何做网站网络销售话术900句
  • 高端公司网站设计站长工具seo综合查询降级
  • 一条龙建站多少钱广告代运营公司
  • 网站变灰代码 所有浏览器营销技巧和营销方法视频
  • 兴义哪有做网站app注册推广
  • 手机注册贷款网站交换友情链接推广法
  • loop wordpress安徽网站关键字优化
  • 自己做网站挂广告江西百度推广开户多少钱
  • 前端直播网站怎么做百度快照
  • 政府网站建设的意义百度空间登录入口
  • 网站界面设计专利优化营商环境条例解读
  • 温州大型网站设计公司广告网络营销
  • cnzz网站排名是怎么做的网站在线生成app
  • 想要网站推广页面优化服务
  • 在哪找可以做网站的企业网站建设方案策划书
  • 网站开发 开源seo排名系统源码
  • 母婴类网站 网站建设方案书 备案搜索引擎营销方法
  • 网站建设加盟营销型网站重要特点是
  • 多语言交友网站开发怎么建造自己的网站