首页 > 其他分享 >题目:不创建第三个变量实现两个变量数值之间的交换--计算一个整数二进制中“1”的个数

题目:不创建第三个变量实现两个变量数值之间的交换--计算一个整数二进制中“1”的个数

时间:2022-10-11 18:00:53浏览次数:49  
标签:return 变量 -- 二进制 int printf sizeof main

int main()
{
int a = 5, b = 3;
printf("a=%d b=%d\n", a,b);
//方法1.创建第三个变量进行交换
/*int iTemp = 0;
iTemp=a;
a= b;
b = iTemp;*/
//方法2:加减法——如果数值过大会溢出
/*a =a+ b;
b = a - b;
a = a - b;*/
//异或的方法(题目:不创建第三个变量实现两个变量数值之间的交换)
存在问题
1.可读性不强 2.效率不高
/*a = a ^ b;
b = a ^ b;
a = a ^ b;*/
printf("a=%d b=%d\n", a, b);
return 0;
}
练习:计算一个整数二进制中“1”的个数
int main()
{
int i=0,count=0;
int a = 0;
printf("请输入数据:\n");
scanf("%d", &a);
//方法1:算法存在问题不能计算-1
//while (a)
//{
// if (a % 2 == 1)
// {
// i++;
// a = a / 2;
// }
//}
for (i = 0; i < 32; i++)
{
if ( 1==(a >> i & 1) )
{
count++;
}
}

printf("%d\n", count);
return 0;
}
sizeof()用法:计算变量所占空间的大小
int main()
{
int a = 10;
printf("%d\n", sizeof(a));
return 0;
}
int main()
{
short s = 0;
int a = 10;
printf("%d\n", sizeof(s = a + 5));//sizeof()不参与运算
printf("%d\n", s);
return 0;
}
按位取反的应用场景
int main()
{
int a = 11;
a = a | (1 << 2);
printf("%d\n", a);
a = a & (~(1 << 2));
printf("%d\n", a);
return 0;
}

标签:return,变量,--,二进制,int,printf,sizeof,main
From: https://blog.51cto.com/u_15812356/5747582

相关文章

  • 变量声明和定义的关系
    变量声明和定义的关系C++语言支持分离式编译(separatecompilation),为了支持分离式编译,C++语言将声明和定义区分开。声明(declaration):使得名字为程序所知,一个文件如果想......
  • 清新陶冶——可爱猫咪绘
    【出版信息】书名:可爱猫咪绘书号:978-7-111-48920-7作者:孟祥雷开本:24开出版时间:2015.2出版社:机械工业出版社【内容简介】如果你喜爱猫咪,也非常喜欢用彩色铅笔画画,那就用彩色......
  • OutputStream详解
    我们都知道流分为字节流和字符流 输出流又分:字节输出流,字符输出流 输入流又分:字节输入流,字符输入流/*在java中OutputStream表示字节输出流,可以将java程序中的数据写到......
  • 【转】如何解决win10无法访问计算机名访问共享但能用IP的问题 转自:https://www.xpwin
    如何解决win10无法访问计算机名访问共享但能用IP的问题转自:https://www.xpwin7.com/jiaocheng/12788.html经过很长时间的摸索,折腾。终于解决了WIN10可以访问IP,但不能访问......
  • java中如何生成UUID呢?
    转自:​​​  http://www.java265.com/JavaProblem/202110/1361.html​​下文笔者将讲述java代码生成UUID的方法分享,如下所示:UUID简介UUID(UniversallyUniqueIdentifie......
  • 多版本jdk共存
    1.jdk环境变量配置jdk环境变量配置2.多版本环境变量共存参考链接本质上是通过修改环境变量更改路径指向来切换jdk版本的。两步:1)分别安装不同版本的jdk;2)分别配置环......
  • iview框架form表单内的select标签存在的校验问题
    近期做项目发现,iview框架的select框,选中值之后,没能通过表单的必填校验...仔细看了下,目前我们项目是请求的数据list的id作为key值来进行渲染,这个id是个number类型的0.0OK,......
  • EasyCVR视频融合平台HLS播放协议配置的细节优化
    EasyCVR视频融合云服务支持海量视频汇聚管理,能兼容多类型的设备接入,平台可对前端接入设备进行统一管理,并能支持采用设备树对设备进行分组、分级、用户与角色权限管理,可支持......
  • docker和Namespace技术介绍
    一、docker介绍Docker是基于linux内核实现,Docker最早采用LXC技术(LinuXContainer的简写,LXC是Linux原生支持的容器技术,可以提供轻量级的虚拟化,可以说d......
  • IDEA内设置启动参数和环境变量
    1.点击EditConfiguration2、设置页面2.1、属性信息#VMArguments是设置的虚拟机的属性#VMoptions#环境变量参数非虚拟机参数需要指定-D参数-server......