原码 反码 补码及应用

article/2025/9/23 13:44:29

原码 反码 补码及应用

原码

什么是原码?

原码:十进制数据的二进制表现形式,最左边是符号位,0为正,1为负。

56 ==> 0 0111000

​ 符号位 数据

最大值:01111111 ==> 127

最小值:11111111 ==> -127

原码的数值计算

00000001 ==> 1

00000010 ==> 2

利用原码对正数计算是不会有问题的。

原码的弊端

10000000 ==> 0

我们对0 + 1,0+1=1

但1000000 + 1 为10000001 ,而10000001 ==> -1

在对负数进行运算时出现了错误,实际运算结果与预期结果是相反的。此时我们引入反码

反码

什么是反码

反码:正数的反码是其本身,负数的反码是符号位保持不变,其余位取反。

数值计算

计算规则:正数的反码不变,负数的反码在原码的基础上,符号位不变,数值取反,0变1,1变0。

-56 ==> 10111000 (原码)

​ 11000111 (反码)

-56 + 1 = -55

-55 ==> 11001000 (反码)

-55 <== 10110111 (原码)

反码的弊端

负数运算时,如果不跨0,没有任何问题,如果跨0,就会与实际结果有1的偏差

-4+4 = 0

-4 ==> 10000100(原码) 11111011(反码)

+4 = 11111111 (反码)== > 10000000 (正码)==> -0

-4+5 = 1

-4 ==> 10000100(原码) 11111011(反码)

+5 = 00000000 (反码)== > 00000000 (正码)==> +0

所以引入补码

补码

什么是补码

补码:正数的补码是其本身,负数的补码是在其反码的基础上+1。

十进制数字原码反码补码
+0000000000000000000000000
-0100000001111111100000000
-1100000011111111011111111
-2100000101111110111111110
-3100000111111110011111101
-4100001001111101111111100
-127111111111000000010000001
-12810000000

补码出现的目的

为了解决负数计算时跨0的问题而出现的。

计算规则

正数的补码不变,负数的补码在反码的基础上+1

另外补码还能多记录一个特殊的值-128,该数据在一个字节下,没有反码和原码、

补码注意的点

计算机中的存储和计算都是以补码的形式进行的。

应用

强制转换

public class Test{public static void main(Strinf[] args){int a = 300;// 00000000 00000000 00000001 00101100byte b = (byte)a;System.out.println(b);// 00101100 ==> 44}
}

00101100 (原码)== > 00101100(反码)> 00101100(补码)> 44

public class Test{public static void main(Strinf[] args){int a = 200;// 00000000 00000000 00000000 11001000byte b = (byte)a;System.out.println(b);// 11001000 ==> -56}
}

11001000(原码)== > 10110111(反码)== > 10111000(补码)==> -56

其他运算符

运算符含义运算规则
&逻辑与0为false,1为true
|逻辑或0为false,1为true
<<左移向左移动,低位补0
>>右移向右移动,高位补0或1
>>>无符号左移向右移动,高位补0

&:逻辑与

public class Test{public static void main(Strinf[] args){int a = 200;// 00000000 00000000 00000000 11001000int b = 10; // 00000000 00000000 00000000 00001010System.out.println(a & b);}
}

​ 00000000 00000000 00000000 11001000

& 00000000 00000000 00000000 00001010


​ 00000000 00000000 00000000 00001000 ==> 8

|:逻辑或

public class Test{public static void main(Strinf[] args){int a = 200;// 00000000 00000000 00000000 11001000int b = 10; // 00000000 00000000 00000000 00001010System.out.println(a & b);}
}

​ 00000000 00000000 00000000 11001000

| 00000000 00000000 00000000 00001010


​ 00000000 00000000 00000000 11001010 ==> 202

<<:左移

public class Test{public static void main(Strinf[] args){int a = 200;// 00000000 00000000 00000000 11001000System.out.println(a << 2);//800}
}

在这里插入图片描述

>>:右移

public class Test{public static void main(Strinf[] args){int a = 200;// 00000000 00000000 00000000 11001000System.out.println(a >> 2);// 50}
}

在这里插入图片描述


http://chatgpt.dhexx.cn/article/cQQ1fqEb.shtml

相关文章

原码反码补码原理理解

原码反码补码原理理解 基础知识原码定义在这里&#xff0c;我们模仿一下计算机对数据运算的过程&#xff01;那么所有运算都是正确的吗&#xff1f;我们再试一组。 反码定义在这里&#xff0c;我们模仿一下计算机对数据运算的过程&#xff01;正数加负数也没问题了&#xff0c;…

java基础-原码反码补码

本文帮助理解&#xff0c;Java中原码反码补码的原理 1&#xff1a;原码反码补码&#xff0c;基础概念和计算方法 对于一个数&#xff0c;计算机需要使用一定的编码方式进行存储。原码反码补码是计算机存储一个具体数字的编码方式。 原码&#xff1a; 第一位表示符号位&…

原码反码补码习题

1、有以下变量求输出结果 signed char c 178; printf("%din",c); printf("%u\n",c); unsigned char d -9; printf("%din".d); printf("%u\n",d)&#xff1b; 并写出数据存储和取出的过程 2、求-57的原码、反码、补码 原码&am…

原码、反码、补码

一、前置概念 计算机底层存储数据时使用的是二进制数字&#xff0c;但是计算机在存储一个数字时并不是直接存储该数字对应的二进制数字&#xff0c;而是存储该数字对应二进制数字的补码。所以接下来我们需要来了解一下原码、反码和补码。 那么再了解原码、反码、补码之前&…

原码、反码以及补码

目录 一、概念 二、补码的意义 一、概念 计算机底层存储数据时&#xff0c;存储的是数据对应的二进制数字。对于整型数据&#xff0c;其二进制表示形式有三种&#xff0c;分别是&#xff1a;原码、反码、补码&#xff0c;而实际存储的是整型数据的补码。 原码、反码以及补码…

【软考学习2】数据表示——原码 反码 补码 移码

原码 反码 补码 移码是软考必考的项目&#xff0c;所以需要对其概念、计算方式和取值范围进行总结。 零、使用场景 原码 反码 补码 移码都是计算机中表示数据的方式&#xff0c;各有所长&#xff0c;对于我们来说&#xff0c;都需要加以学习。 软考中最常见的就是一个字节的码…

原码,补码,反码概念和计算方法详解

目录&#xff1a; 原码,补码,反码概念和计算方法详解一、机器数和真数二、原码&#xff0c;反码&#xff0c;补码的基础概念和计算方法三、为何要使用原码&#xff0c;反码和补码四、Example 原码,补码,反码概念和计算方法详解 一、机器数和真数 1、机器数 一个数在计算机中…

原码、反码、补码详解

文章转自: http://c.biancheng.net/ 文章目录 1. 原码2. 反码3. 补码4. 补码到底是如何简化硬件电路的5. 实例分析 1. 原码 将一个整数转换成二进制形式&#xff0c;就是其原码。例如short a 6; a 的原码就是0000 0000 0000 0110&#xff1b;更改 a 的值a -18; 此时 a 的原码…

什么是原码、反码和补码

什么是原码、反码和补码 文章目录 什么是原码、反码和补码1、机器数2、原码3、反码4、补码5、总结 1、机器数 前言 一个数在计算机中的表示形式是二进制的话&#xff0c;这个数其实就叫机器数。 机器数通常是带有符号的&#xff08;指有正数和负数之分&#xff09;&#xff0c;…

Wi-Fi 破解 (基于WPA2协议)

如今信息安全越来越热门&#xff0c;最近搞大创项目有机会接触到了我们一直谈论的Wi-Fi破解技术&#xff0c;于是整理了一些关于Wi-Fi破解的东西分享给大家&#xff0c;包括一些Wi-Fi的基本知识。希望大家只是拿自己的Wi-Fi做实验&#xff0c;不要“Wi-Fi破解&#xff0c;从入门…

CDLinux破解WPA/WPA2无线网络密码

破解前的准备工作&#xff1a; 1、8187/8187L/3070芯片大功率网卡一块&#xff08;就是我们俗称的“卡王”&#xff09; 2、破解软件CDLinux 3、CDLinux下载地址 http://www.syston.es/gratis/system/systonwpa.iso 4.1g的U盘或虚拟机vm 启动虚拟机&#xff1a; 照片名称&a…

使用KALI破解WIFI(wpa/wpa2)密码

前言 本文直接使用kali操作系统进行相关操作&#xff0c;未使用虚拟机&#xff0c;在此不赘述虚拟机配置 正文 1 使用命令iwconfig&#xff0c;确定哪些无线解控是可用的&#xff0c;如图所示&#xff0c;无线网卡名称为wlan0。 2 使用airmon-ng命令监控无线传输&#xff0c…

无线WiFi安全渗透与攻防(十三)之WPA破解-windows下GPU跑包加速

WPA破解-windows下GPU跑包加速 实现GPU加速的前提条件&#xff1a; 英伟达公司 设计的 计算统一设备架构 AMD 设计的 流开放计算库 openCL 通过这两个技术&#xff0c;可以让显卡帮我们进行计算渗透 1.EWSA软件介绍 一个非常不错的网络网络破解工具&#xff0c;可以直接破…

【WLAN】【测试】Linux下aircrack-ng的应用之破解WPA/WPA2、WEP密钥

1、准备工作 a、将网卡设置为monitor模式,在前述博文的抓包方法中有说明,不再赘述; b、准备字典文件wordlists.txt。 2、探测阶段 通过sudo airodump-ng wlan0mon命令探测周边802.11网络的情况: 比如这里,可以看到FC:D7:33:3F:BC:F8的AP下挂了两个STA。 根据扫描的情况…

简单用BT3破解无线网络WEP, WPA密码

最近在网上看到一篇帖子&#xff0c;《网上风行"无线蹭网"秘笈 破解密码只需10分钟 》&#xff0c; 看完后&#xff0c;心里一直痒痒&#xff0c;迫不及待的上网搜索了起来。看来自从离开黑鹰之后&#xff0c;咱这"黑"心还是存在的。网上搜索了下&#xff…

BackTrack5 (BT5)无线密码破解教程之WPA/WPA2-PSK型无线密码破解

昨天发布了BackTrack5 (BT5)无线wep密码破解教程之minidwep-gtk破解法一文&#xff0c;对BT5下破解wep无线密码的简单方法做了介绍&#xff0c;今天奶牛为朋友们介绍下如何在bt5下破解wpa wpa2类型的无线密码。 前提&#xff1a;安装或者硬盘引导了BT5的gnome32位镜像&#xff…

破解WPA2-PSK加密

● WPA/WPA2与WPA/WPA2- PSK的区别 使用Aircrack-ng抓取WPA2-PSK握手包 ● 使用EWSA破解密码 WPA/WPA2与WPA/WPA2-PSK的区别 .WPA/WPA2 WPA/WPA2是一种比WEP强壮的加密算法&#xff0c;挑选这种安全类型,路由器将选用Radius服务器进 行身份认证并得到密钥的WPA或WPA2安全形式。…

*WiFi无线渗透 WPA2-PSK密码破解笔记*

WiFi无线渗透 WPA2-PSK密码破解笔记 WPA/WPA2&#xff1a; > WPA/WPA2是一种比WEP强壮的加密算法&#xff0c;挑选这种安全类型&#xff0c;路由器将选用Radius服务器进行身份认证并得到密钥的WPA或WPA2安全形式。因为要架起一台专用的认证服务器&#xff0c;价值对比贵重且…

U盘制作“奶瓶”破解无线WPE\WPA\WPA2 密码教程

奶瓶这个系统&#xff0c;相信玩无线的朋友应该都会知道。这是一款基于 Tiny Core Linux 搭建的无线网络安全测试系统&#xff0c;当然由于它是用来安全测试的系统&#xff0c;因此在安全方面自然有着强大的功能。而且&#xff0c;这个系统非常简便易学&#xff0c;因此现在已经…

MacOS破解WiFi(WPA、WPA2)

2020年的寒假过得属实弟弟 我在家里默默地刷安全牛的教程&#xff0c;最新刷到了“无线攻击”这一章&#xff0c;虽然在学校的机器上安装了Kali虚机&#xff0c;但是没有Usb无线网卡。于是用MacBook尝试了一下。 PS&#xff1a; 本文参考了网络上众多的文章&#xff0c;但是有我…