二进制与十六进制的相互转换;按位操作:与() 和 或(|)

news2024/9/24 1:25:23

目录

一、二进制转换十六进制

二、十六进制转换二进制

三、按位操作:与(&) 和 或(|)

1、按位与(&)操作

2、按位或(|)操作

得出结论:清0用与(&),置1用或(|)

3、与和或的小练习


一、二进制转换十六进制

科普一下:二进制(binary),是在数学和数字电路中以2为基数的记数系统,是以2为基数代表系统的二进位制。这一系统中,通常用两个不同的符号0(代表零)和1(代表一)来表示 。

举例

二进制:   0101        0011

十六进制:  5              3

如上图二进制0101转换到十六进制后为5,为什么是5呢,请看下面分解

这个时候就用到8421法则了,怎么用8421法则呢

0    1    0    1            0   0   1    1

x     x    x    x            x   x    x    x

8     4    2   1            8   4    2   1

=    =    =    =           =   =    =   =

0    4    0     1           0    0   2   1

0+4+0+1 = 5           0+0+2+1 = 3

注:图中的”x“代表乘法的乘号

由上图计算可得知:

二进制0101转换到十六进制后为5,二进制0011转换到十六进制后为3

额外的知识点:四个二进制的数 =   一位的十六进制的数

8421转换法是一个计算机的术语,可以轻松实现各进制之间的转换。 

二、十六进制转换二进制

科普一下:十六进制通常用数字0、1、2、3、4、5、6、7、8、9和字母A、B、C、D、E、F(a、b、c、d、e、f)表示,其中:A~F表示10~15

举例

十六进制:   F          0

二进制:    1111     0000

也是用8421法则进行转换

因为F在十六进制中表示15,那么F转换到二进制后,也必须是15(因为无论进制怎么转换,F=15数值不能改变)那么用8421法则进行凑数,怎么凑数呢,如下:

8   x  1 =  8           8    x    0   = 0

4   x  1 =  4           4    x    0   = 0 

2   x  1 =  2           2    x    0   = 0

1   x  1 =  1           1    x    0   = 0

8+4+2+1 = 15       0+0+0+0  = 0

由上图可知:用8421法则进行凑数时,在二进制的四个位置均为1时,算出的结果正好是15

所以十六进制的F,转换为二进制时,是1111

同理十六进制的0,转换为二进制时时,是0000

三、按位操作:与(&) 和 或(|)

1、按位与(&)操作

运算规则:1 & 1 = 1 ,0 & 0 =0 ,1 & 0 = 0 

1&上任何数,都不会改变它原来的值,0&上任何数,都是0

0   1   0   1        0   0   1   1

&   &   &   &      &   &   &  &

1   1   1   1        0   0   0   0

=   =   =   =        =   =  =   =

0   1   0   1        0   0   0   0

总结:两边同时为1时,才得1

2、按位或(|)操作

运算规则:1 | 1 = 1 ,0 | 0 =0 ,1 | 0 = 1 

0 | 上任何数,都不会改变它原来的值,1 | 上任何数,都是1

0    1   0  1          0   0   0   0

|     |    |    |           |    |    |    |

0   0   0   0          0   0   0   1

=   =   =   =          =   =   =  =

0   1   0   1          0   0   0  1

总结:两边有一个为1时,就得1

得出结论:清0用与(&),置1用或(|)

配置寄存器推荐用按位操作,清零的时候,对应的需要清零的位与上0,不需要清零的位与上1

置1的时候,需要置1的位置或1,不需要置1的位置或0

3、与和或的小练习

要实现的目标:要把TMOD:0101 0011,转换成高位置不变,低位置最后 的两个位置变01  

TMOD & =  0xF0;

TMOD |  =  0x01;

第一步转换

TMOD为:                           0101    0011

F0转换为二进制为:            1111    0000

TMOD & F0的结果为:        0101   0000

第二步转换

由上一步得知TMOD为:      0101   0000

01转换为二进制为:             0000   0001

TMOD  |  01的结果为:        0101   0001

TMOD经过两步的转换后,最后得出的结果是:0101  0001 实现了高位置不变,低位置最后 的两个位置变01  

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【金猿案例展】海尔集团——追光AI-AOI赋能PCBA缺陷检测

‍数之联案例本项目案例由数之联投递并参与“数据猿年度金猿策划活动——《2022大数据产业年度创新服务企业》榜单/奖项”评选。‍数据智能产业创新服务媒体——聚焦数智 改变商业AOI(Automated Optical Inspection缩写)的中文全称是自动光学检测。通过…

className 还能这么用,你学会了吗

抛出问题 className大家都用过吧,用它在react项目中设置样式。它的用法很简单,除了可以设置一个样式外,react中也可以使用className引入多个类样式。 这次在写项目的时候,碰到一个非常小但是当时却一直解决不了的问题。后面在复…

python基础语法25-进程理论

一、简介 服务器为了能够同时为多个客户端服务,则需要能够同时处理多个网络连接的方法。python提供了3个主要的方法来实现这个目的,multiprocessing、threading和异步I/O。 今天主要说一下进程multiprocessing。 multiprocessing是一个和threading(多线程)类似的库,这个多…

【MVC和三层架构】联系、区别以及简单实践

MVC架构模式MVC架构模式概述引入MVCMVC和三层架构之间的联系和区别三层架构与MVC联系和区别银行转账小项目实践MVC架构模式概述 MVC架构模式是软件架构中的一个架构模式。 M(Model:数据/业务) V(View:视图/展示&#x…

深入xJavaFxTool的插件开发模式

背景 时光华丽丽的来到了2023年,首先在这里祝大家新年快乐,希望大家在新的一年里都能心想事成,万事如意,最重要的是身体健康。过去的2022年里,大家一定都是收获满满。不论是技术的,家庭的,事业的…

【C++】map 与 set 的介绍与使用

目录 一、关联式容器 二、键值对 三、set 3.1 set 的介绍 3.2 set 的使用 3.3. set 的使用举例 四、map 4.1 map的介绍 3.2 map 的使用 4.3 map的使用举例 五、经典练习题 1.set的使用 2.map的使用 思路一(稳定排序): 思路二(priority_queue)&#x…

LabVIEW使用共享变量在两台计算机之间进行通信

LabVIEW使用共享变量在两台计算机之间进行通信 需要选择一台计算机作为服务器并发布变量,而另一台计算机作为客户端接收变量。然后,按照以下步骤设置服务器和客户端计算机。 服务器机器: 创建LabVIEW项目并通过右键单击“我的电脑”并选择…

opencv-python常用函数解析及参数介绍(六)——图像梯度

图像梯度前言Sobel算子算子的定义Sobelx效果演示Sobely效果演示完整轮廓直接计算复杂图片的轮廓Scharr算子与laplacian算子scharr算子的定义laplacian算子定义三种算子的效果对比结尾前言 前面的文章中我们介绍了用膨胀和腐蚀得到了图像轮廓,图像梯度也是一种可以得…

五年六次

今天是 2022 年的最后一天,可算等来了。讽刺的是,就在昨天,小号写了篇文章,啥主题就不说了,然后晚上文章被删了,账号居然也被封了。2022 全年虽然我写过很多文章都被和谐了,但是最后一天喜提封号…

二、Django

Django 提示:本文根据b站黑马python课整理 链接指引 > 黑马程序员python企业级开发项目-手把手从0到1开发《美多商城》 文章目录DjangoMVT图解项目准备1.创建项目2.创建应用3.更换python解释器4.安装应用5.本地化6.项目中匹配urls7.应用中匹配urls.py8.准备视图…

Tensorflow游乐场 在线可视化

playground.tensorflow.org Tensorflow游乐场 Tensorflow游乐场提供了一个在线可视化AI训练。A Neural Network Playgroundhttp://playground.tensorflow.org/ Tensorflow游乐场 是干啥的呢 给一堆点分出蓝色部分和橙色部分。也就是二分类。 它提供了4种数据来训练 每种数据…

致敬客户、致敬行业,知道创宇2022“宇”你并肩前行!

2022回首2022,一幅数字化、智能化升级的壮阔云图徐徐展开,顺势催生出安全技术的全新变革……这一年,中国网络安全企业代表——知道创宇,持续从技术创新、安全服务、行业融合等方面深入网络安全产业升级。我们坚守攻防博弈战场、纵…

burp suite爆破sqli-labs的 less-5

一. 使用proxy抓包,具体数据包如下图: 二. 鼠标右键,将其发送到 intruder中,具体如下图: 三.选择下图选项卡: 1.默认为sniper模式,即如果有多个变量,对每个变量依次进行破解&#xf…

【 shell 编程 】第3篇 循环

循环 文章目录循环一、for 循环1.for 语法结构二、while、until 循环1.while 语法结构2.until 语法结构三、expect一、for 循环 1.for 语法结构 for 变量名 [ in 取值列表 ] do 循环体 done例子1 需求:自动循环创建10个用户 #!/bin/bash read -p &quo…

【C++常用容器】STL基础语法学习set容器

目录 ●set构造和赋值 ●set大小和交换 ●set插入和删除 ●set查找和统计 ●set排序(改变其排序规则,仿函数的运用) ●set和multiset 1.对组(pair)的创建 2.set的验证(不可以重复插入数据&#xff…

《QDebug 2022年12月》

一、Qt Widgets 问题交流 二、Qt Quick 问题交流 1、在 C 中关联 QQuickWindow 的 closing 信号提示 "使用了未定义类型QQuickCloseEvent" 因为 closing 信号中的参数类型是 private 模块中定义的,但是通过第二句提示我们知道找到了完整定义才能使用 Q_…

安装并配置uwsgi(1)

今天分享的主题是安装并配置uwsgi。 假设我们‍‍腾讯云主机里面的整个后端的源码,包括运行环境都已经没有问题了, 我们要把这个给挂到我们的 uwsgi 的服务器上, 因为这个服务器它支持 uwsgi 的协议,它能够跟我们的Django的进行一…

Shell——echo、printf及彩色打印

文章目录printfprintf格式常用的转义字符echoecho打印的格式echo打印的三种方式echo支持的转义字符关于打印叹号(!)彩色输出printf printf格式 printf “格式化字符串” 变量 printf的使用方法与C语言一样,并且不需要括号和逗号进行分隔&…

【自学Python】Python诞生

Python诞生 Python诞生教程 1989 年的圣诞节期间,吉多范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的解释程序,作为 ABC 语言的一种继承。 ABC 语言是由吉多参加设计的一种教学语言,就吉多本人看来,ABC 这种语…

如何使用 Java Stream API ,一行代码将 List 转换为 Map 类型

文章目录一句话场景语法测试关键语句截图Source Code控制台输出一句话 List<User> --> Map<User对象中欲作为key的字段的类型, User> List<User> userList getUserList(); Map<Integer, User> idAndUserMap userList.stream().collect(Collecto…