C 练习实例51-学习使用按位与

按位与、或、异或

1.按位与 &

0&0=0        0&1=0        1&0=0        1&1=1

2.按位或 |

0|0=0        0|1=1        1|0=1        1|1=1    

3.按位异或 ^

0^0=0        0^1=1        1^0=1        1^1=0

(只要学过离散数学懂的都懂)

(都是双目运算符)

按不同进制进行输出语句

  1. %d\n 十进制输出
  2. %o\n 八进制输出
  3. %x\n 十六进制输出

代码

#include <stdio.h>
int main()
{int a=25;printf("%d的八进制数是:%o\n",a,a);printf("%d的十进制数是:%d\n",a,a);printf("%d的十六进制数是:%x\n",a,a);return 0;
}
25的八进制数是:31
25的十进制数是:25
25的十六进制数是:19

 (c语言没有二进制的输出,可百度-手动构造函数实现十-二进制的转化)

十进制—二进制

(辗转相除法) 以25为例

25 / 2 ... 1

12 / 2 ... 0

 6 /  2 ... 0

 3 /  2 ... 1

 1 /  2 ... 1(除到商为0为止)

从下到上,于是25(十进制)=11001(二进制)

calculator可证明这个结果↓

 手动构造函数实现十-二进制的转化

(此处用int型来表示二进制数)

#include <stdio.h>
int main()
{int n=25;		//需要转化的十进制数int num=n;int ys;	        //余数int Binary=0;	//二进制数int temp=1;		//中间变量while(num){ys=num%2;Binary+=ys*temp;temp*=10;num/=2;}printf("%d的二进制数为%d\n",n,Binary);
}

运行

25的二进制数为11001

按位与、或、异或代码

#include <stdio.h>
int f(int num)
{int ys;	        //余数 int Binary=0;	//二进制数int temp=1;		//中间变量while(num){ys=num%2;Binary+=ys*temp;temp*=10;num/=2;}return Binary;
}
int main()
{int a=13;int b=14;printf("%d的二进制数为:%d\n",a,f(13));printf("%d的二进制数为:%d\n",b,f(14));printf("\n%d&%d=%d(十进制)\n",a,b,a&b);printf("%d&%d=%d(二进制)\n",a,b,f(a&b));printf("\n%d|%d=%d(十进制)\n",a,b,a|b);printf("%d|%d=%d(二进制)\n",a,b,f(a|b));printf("\n%d^%d=%d(十进制)\n",a,b,a^b);printf("%d^%d=%d(二进制)",a,b,f(a^b));return 0;
}

运行

13的二进制数为:1101
14的二进制数为:111013&14=12(十进制)
13&14=1100(二进制)13|14=15(十进制)
13|14=1111(二进制)13^14=3(十进制)
13^14=11(二进制)

computer计算器可证明这个结果 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/440015.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt QScrollArea 不显示滚动条 不滚动

使用QScrollArea时&#xff0c;发现添加的控件超出QScrollArea 并没有显示&#xff0c;且没有滚动条效果 原因是 scrollArea指的是scrollArea控件本身的大小&#xff0c;肉眼能看到的外形尺寸。 scrollAreaWidgetContents指的是scrollArea控件内部的显示区域&#xff0c;里面可…

如何优雅的完成权限认证?-- 瞎扯文

文章目录 前言常规解决方案Linux系统文件的权限编码压缩Python版本Java版本总结前言 以前挺喜欢计算机的,出来工作后发现,现在更喜欢了嘿嘿~当然也是沉寂了一个月之久。终于又来冒泡了,实属不易啊。消失了这么久的时间,干嘛去了呢?很简单实习去了,当然不是某互联网公司哈…

05 SB3之Spring Initializr+运行方式+自动配置原理(TBD)

1. 使用IDEA内置Spring Initializr 生成SB项目 最上方Server URL可以选择借助哪个平台生成, 可选阿里云 作为对比 , 官方可选版本最旧为3.1.18 ; 阿里云可选最新版本为3.0.2 本次选择3.1.8版本, 并且添加Spring Web依赖(包括RESTful / Spring MVC/)和Lombok依赖 生成后端项目…

Android Studio项目——TCP客户端

目录 一、TCP客户端UI 1、UI展示 2、xml代码 二、TCP客户端数据发送 三、TCP客户端数据接收 一、TCP客户端UI 1、UI展示 2、xml代码 <?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.…

HiveSQL题——窗口函数(lag/lead)

目录 一、窗口函数的知识点 1.1 窗户函数的定义 1.2 窗户函数的语法 1.3 窗口函数分类 1.4 前后函数:lag/lead 二、实际案例 2.1 股票的波峰波谷 0 问题描述 1 数据准备 2 数据分析 3 小结 2.2 前后列转换&#xff08;面试题&#xff09; 0 问题描述 1 数据准备 …

Linux——Ubuntu安装MySQL并设置远程登录

1、安装mysql8.0.35 1.更新包列表&#xff0c;首先&#xff0c;确保您的系统已更新到最新状态。运行以下命令来更新包列表和安装最新的软件包&#xff1a; sudo apt update sudo apt upgrade2.安装MySQL服务器&#xff1a;运行以下命令来安装MySQL服务器&#xff1a; sudo a…

【论文阅读】Long-Tailed Recognition via Weight Balancing(CVPR2022)附MaxNorm的代码

目录 论文使用方法weight decayMaxNorm 如果使用原来的代码报错的可以看下面这个 论文 问题&#xff1a;真实世界中普遍存在长尾识别问题&#xff0c;朴素训练产生的模型在更高准确率方面偏向于普通类&#xff0c;导致稀有的类别准确率偏低。 key:解决LTR的关键是平衡各方面&a…

iOS App审核状态和审核时间管理指

引言 对于一款开发完成并准备上架的 iOS 应用程序来说&#xff0c;通过苹果公司的审核是非常重要的一步。苹果公司会对应用程序进行严格的检查&#xff0c;以确保应用程序的质量和安全性。本文将介绍 iOS 应用程序审核的流程和时间&#xff0c;希望能够帮助开发者更好地了解和…

基于C#制作一个连连看小游戏

基于C#制作一个连连看小游戏,实现:难易度选择、关卡选择、倒计时进度条、得分计算、音效播放等功能。 目录 引言游戏规则开发环境准备游戏界面设计游戏逻辑实现图片加载与显示鼠标事件处理游戏优化与扩展添加关卡与难度选择说明</

【Python笔记-设计模式】单例模式

一、说明 单例是一种创建型设计模式&#xff0c;能够保证一个类只有一个实例&#xff0c; 并提供一个访问该实例的全局节点。 (一) 解决问题 维护共享资源&#xff08;数据库或文件&#xff09;的访问权限&#xff0c;避免多个实例覆盖同一变量&#xff0c;引发程序崩溃。 …

Flutter开发1:学习大纲

引言 欢迎来到Flutter开发系列的第一篇博客&#xff01;在这个系列中&#xff0c;我们将一起探索Flutter的奇妙世界。如果你是一个热爱移动应用开发的开发者&#xff0c;或者对跨平台开发有兴趣&#xff0c;那么Flutter绝对值得你学习和尝试。 为什么选择Flutter&#xff1f;…

CentOS 7如何修改用户密码

一、问题 CentOS 7如何修改用户密码&#xff1f; 二、解答 1、passwd命令 [rootlocalhost ~]# passwd 用户名#需要在root用户下修改 [rootlocalhost ~]# su root#切换到root下&#xff0c;输入密码 #修改用户的密码&#xff0c;按提示输入新密码和确认密码&#xff0c;密码是…