二进制数与十进制数的相互转换、二进制数的乘除运算、移位运算

article/2025/9/25 0:24:51

二进制数与十进制数的转换

聊二进制数的运算前,我们先看看二进制数的值与十进制数的值是如何相互转换的,
十进制转换成二进制
将十进制数除以2,得到的商再除以2,依次类推直到商为1时为止,然后在旁边标出各步的余数,最后从下往上倒着写出来,高位补零就可以成功转换成二进制。
例如下图49的二进制数就是110001
在这里插入图片描述
二进制转换成十进制
只需将二进制数的各数位的值和位权相乘,然后将相乘的结果相加即可,有木有感觉特别方便。
在这里插入图片描述
二进制数的符号位
二进制数中表示负数值时,一般会把最高位作为符号位来使用,最高位为0代表正数,最高位为1代表负数。
这时了解二进制的人可能就会疑问,既然最高位1代表负数,1是00000001,那-1应该是10000001,为什么是11111111呢?要解释这个我们要先引入“补数”的概念,因为计算机在做加减运算时其实内部只会做加法运算,所以为了表示负数,就用正数来表示负数,这就是负数的概念。得到补数的方法很简单,进行取反操作,将二进制数的各位数的数值由1变为0,0变为1,再将结果加上1就可以了。

00000001——————1(十进制)
先进行取反操作,之后再加上1
11111110
变成
11111111——————-1(十进制)

不信的同学还可以验证以下,就会发现8位二进制的-1+1刚好等于100000000,而计算机会直接忽略掉最高位溢出的那个数字,所以刚好是00000000了。

二进制数的乘除运算

二进制数的乘除运算有两种方法,要么先转化位十进制数进行运算之后再转换为二进制(想来有点麻烦),要么头铁直接用二进制数进行乘除运算。

在这里插入图片描述
二进制数111乘以1011,乘数1011的每一位分别与乘数相乘,得到111、1110、00000、111000,将其加起来,得到1001101,这便是二进制乘法最直接的解求过程;也可以将111转化为十进制数7,1011转化为十进制数11,显版然7乘以11等于77,再将十进制数77化为二进制数1001101,显然1x26+1x23+1x22+1x20=64+8+4+1=77,所求结果完全正确。——百度

二进制数的移位运算

移位运算可是二进制的门面招牌
在这里插入图片描述

移位运算指的是将二进制数值的各数位进行左右移位(shift=移位)的运算。移位有左移(向高位方向)和右移(向低位方向)两种。在一次运算中,可以进行多个数位的移位操作。在程序代码中<<这个运算符表示左移,>>这个运算符表示右移,

int a=1;
int b;
b=a<<3;//b现在为8

运算符左侧是被移位的值,右侧表示要移位的位数。看到这有些同学就会想到,这移了几位不多了几个空白处么,计算机这千年老怪早想好了,如果是左移运算的话,它就会在空出来的低位补0。如果是右移运算的话,就稍微有点特殊,因为存在两种情况,既可以填1也可以填0,这就是逻辑右移和算数右移的区别。

当二进制数的值表示图形模式而非数值时,移位后需要在最高位补0.类似于霓虹灯往右滚动的效果。这就称为逻辑右移。
将二进制数作为带符号的数值进行运算时,移位后要在最高位填充移位前符号位的值(0或1)。这就称为算数右移。例如负数就在最高位补1,正数就在最高位补0。
在这里插入图片描述


http://chatgpt.dhexx.cn/article/9BSWmPiQ.shtml

相关文章

计算机组成原理 二进制数的运算

1、算数运算 &#xff08;1&#xff09;加法运算 二进制加法法则为&#xff1a; 000 10011 110&#xff08;向邻近高位有进位&#xff09; 1111&#xff08;向邻近高位有进位&#xff09; &#xff08;2&#xff09;减法运算 二进制减法法则为&#xff1a; 0-00 1-10 1-01 0-1…

将输入的十进制数转换成二进制数

软件&#xff1a;DEV&#xff0c;语言&#xff1a;C语言。 声明&#xff1a;本案例只考虑了整数&#xff08;即int型&#xff09;&#xff0c;故无法进行小数之间的转换&#xff08;例如float型&#xff0c;double型&#xff09;。 十进制整数转换为二进制整数采用"除2取…

二进制数表示法

二进制数表示法 二进制数是数字电路中应用最广泛的一种数值表示方法&#xff0c;在逻辑代数中也经常使用。 1、十进制数 在这种计数进位制中&#xff0c;每一位用0~9十个数字来表示&#xff0c;所以计数基数是十。超过9的数则需用多位数表示&#xff0c;其中低位数和相邻高位…

c语言程序10进制转2进制,C语言十进制数转换为二进制数

这是一个C语言 do while 循环示例:统计十进制正整数 n 转换为二进制数后,其二进制序列中包含的 1 和 0 的个数。 问题分析 输入:一个正整数。 输出:两个整数:1 的个数和 0 的个数。 将十进制数 n 转换成二进制数,一般采用“除 2 取余,倒序输出”的方法。 本题只是统计转…

二进制转十进制c++语言数组,C++实现读入二进制数并转换为十进制输出

C++实现读入二进制数并转换为十进制输出 题目描述 已知一个只包含0和1的二进制数,长度不大于10,将其转换为十进制并输出。 输入描述 输入一个二进制整数n,其长度不大于10 输出描述 输出转换后的十进制数,占一行 样例输入 110 样例输出 6 solution: 很多学过C初学C++的人可…

二进制数的加法步骤解析

文章目录 位运算二进制数加法步骤例子代码演示 二进制的加法需要用到位运算&#xff0c;所以先来复习下位运算。 位运算 运算符号(java)描述位与&都为1&#xff0c;结果为1&#xff0c;否则为0。位或|有一个为1或两个位都为1&#xff0c;则结果为1&#xff0c;否则为0。换…

二进制数及其运算

计算机的底层都是使用二进制数据进行数据流传输的&#xff0c;那么为什么会使用二进制表示计算机呢&#xff1f;什么是二进制数呢&#xff1f;如何使用二进制进行加减乘除&#xff1f;二进制数如何表示负数呢&#xff1f;本文将为你揭晓。 为什么用二进制表示 计算机内部是由I…

二进制数的运算

文章目录 前言一、加法运算规则二、减法运算规则三、乘法运算规则四、除法运算规则五、逻辑或运算规则六、逻辑与运算规则七、逻辑非运算规则八、逻辑异或运算规则 前言 此篇文章仅介绍二进制数的运算&#xff0c;不涉及其他进制的运算 一、加法运算规则 000 011 101 110 &…

什么是二进制数?二进制数是如何表示计算机信息的?

二进制是什么&#xff1f; 想要了解二进制数是如何表示计算机信息的&#xff1f;先要追本溯源&#xff0c; 二进制&#xff08;binary&#xff09;在数学和数字电路中指以2为基数的记数系统&#xff0c;以2为基数代表系统是二进位制的。这一系统中&#xff0c;通常用两个不同的…

二进制

博客引用处&#xff08;以下内容在原有博客基础上进行补充或更改&#xff0c;谢谢这些大牛的博客指导&#xff09;&#xff1a; 二进制 二进制和十进制间小数怎么转换 二进制进位 前言&#xff1a; 二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的…

二进制(bit)整数

计算机以电子电荷集合的形式在内存中保存指令和数据。用数字来表示这些内容就需要系统能够适应开 / 关(on/off)或真 / 假(true/false)的概念。 二进制数(binary number)用 2 个数字作基础,其中每一个二进制数字(称为位,bit)不是 0 就是 1。 位自右向左,从 0 开始顺…

计算机基础(一):二进制详解

二进制 我们都知道&#xff0c;计算机的底层都是使用二进制数据进行数据流传输的&#xff0c;那么为什么会使用二进制表示计算机呢&#xff1f;或者说&#xff0c;什么是二进制数呢&#xff1f;在拓展一步&#xff0c;如何使用二进制进行加减乘除&#xff1f;二进制数如何表示…

图论学习笔记——可达矩阵

设有向图D &#xff08;V,E&#xff09;,顶点集V {v1&#xff0c;v2&#xff0c;&#xff0c;vn}。 定义矩阵 为&#xff08;当vi到vj不可达时&#xff0c;p为0&#xff1b;当vi到vj可达时p为1.&#xff09; 称矩阵P是图D的可达矩阵 一般地&#xff0c;设n阶有向图D的邻接…

传递闭包和可达矩阵的关系?

今天的这篇博客让我沉思了好久~~~ 传递闭包矩阵的定义如下所示&#xff1a; 可达矩阵的定义如下图所示&#xff1a; 通过以上两个图片可以看出这两个定义有所区别&#xff0c;这篇博客所讲解的就是传递闭包和可达矩阵的关系&#xff1f;这是为什么呢&#xff1f;传递闭包定义为…

用java不带权有向图求可达矩阵_ISM算法(邻接矩阵求可达矩阵)Java实现

图如下: package com;public class Main {public static void main(String[] args) {// 邻接矩阵int adjacency[][] { { 0, 0, 0, 0, 0 }, { 0, 0, 1, 1, 0 }, { 1, 0, 0, 1, 0 }, { 0, 0, 1, 0, 1 },{ 1, 0, 0, 0, 0 } };// 可达矩阵int reachability[][] null;System.out.p…

【有限马尔科夫链状态分解+Kosaraju 算法】基于Kosaraju 算法和可达矩阵的有限马尔科夫链状态分解

有限马尔科夫链状态分解Kosaraju 算法 1 实验内容2 理论基础3 题目分析4 按常返性和互通性对状态空间进行分解算法流程4.1 强连通性和强连通分量4.2 基于有向图 Kosaraju 算法的有限马尔科夫链状态分解4.3 算法正确性证明4.4 算法复杂度分析 5 按周期对不可约闭集进行分解6 对例…

R 语言 | 计算可达矩阵

在微博有位朋友问我可达矩阵的计算&#xff0c;于是发了点时间用R语言写出来了。 问题如下&#xff1a; 计算过程&#xff1a; 注意&#xff1a;是矩阵的乘法。 代码如下&#xff1a; A <- matrix(c(0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0),nrow5) A1 …

一种使用Python计算可达矩阵的简单方法

在进行编码前要简单介绍几个知识点&#xff1a;有向图&#xff0c;邻接矩阵&#xff0c;可达矩阵 有向图、邻接矩阵、可达矩阵 有向图 现实中常常会表示从一个地点到另一个地点的路径&#xff0c;这样的带有从起点到终点的路线表示可以用有向图表示。如下图所示&#xff1a;…

系统工程利用python求解可达矩阵

系统工程中利用python求解可达矩阵 在系统工程书中&#xff0c;建立解释结构模型中求解可达矩阵是必不可少的一环故利用python写了一段求解可达矩阵的代码&#xff0c;只需要输入邻接矩阵便可计算得到可达矩阵代码如下&#xff1a; import numpy as npdef change(a): 乘以自身…