网站首页 > 资源文章 正文
前言
很多的小伙伴在学习计算机相关课程的时候,经常会听到原码、反码、补码等词语,但是很少有人能够理解它们具体是干嘛的。但是随着编程的深入,我们知道在计算机中只能存储0和1的二进制码,所有数据类型最后都会转为二进制码再存储到内存中。所以理解这些知识能够帮助你理解数值在内存当中的存储方式。
并且进制转换也是一个重点,不管是在大学的期末考试还是找工作的面试题,这都是需要了解的知识。今天冷月就带大家来梳理一下原码、反码、补码的相关知识,并讲解一下进制转换的方法。
原码
原码也叫符号-绝对值码;最高位0则表示正数,最高位1则表示负数,其余的二进制位是该数字的绝对值的二进制位。也就是说原码的最高位代表他是正数或者是负数,而其余的位数才代表具体的值。
举个例子: 假如:我们用8位二进制表示一个数,+11的原码为00001011,-11的原码就是10001011
原码简单易懂,但是它的加减运算复杂,而且零的表示不唯一,所以在计算机中并不是直接用数值的原码来存储。
反码
反码通常是用来由原码求补码或者由补码求原码的过渡码。直接将二进制位按位取反。而反码的运算不遍,也没有在计算机中应用。
假如:我们用8位二进制表示一个数,+11的反码为11110100,-11的原码就是01110100
补码
在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。
如下图所示:
8421法
一种2进制转16进制的简便方法。简单来说16进制也就是表示16种状态,而二进制数要表示16种状态,则需要4位才能够表示。所以我们用4位二进制数来表示1位16进制数,不够的位数前面补0。
而对应的4位二进制数分别等于10进制的8 4 2 1。
如下图所示:
进制转换(求补码)
已知十进制求二进制:
求正整数的二进制(补码):除2取余,直至商为0,余数倒序排列。
求负整数的二进制(补码):先求与该负数相对应的正整数的二进制补码,然后将所有位取反,末尾加1,不够位数时,左边补1。
求零的二进制(补码):全是0。
#include<stdio.h>
/*
公众号:学长冷月
*/
int main()
{
printf("%#X\n",18); //输出0X12
printf("%#X\n",-18); //输出0XFFFFFFEE
return 0;
}
我们来分析一下上面的运行情况。我们知道正数的原码、反码、补码相同,在C语言中int类型在内存中分配4个字节,也就是32位。而C语言中不能直接输出二进制,所以我们输出16进制。如下图所示:
已知二进制补码求十进制:
如果首位是0,则表明是正整数,按普通方法来求; 如果首位是1,则表明是负整数,将所有位取反,末尾加1,所得数字就是该负数的绝对值; 如果全是0,则对应的十进制数字就是0
#include<stdio.h>
/*
公众号:学长冷月
*/
int main()
{
printf("%d\n",0X12); //输出18
printf("%d\n",0XFFFFFFEE); //输出-18
return 0;
}
上面的运行情况就是已知十进制求二进制的逆过程。计算过程如下图:
如果这篇博文有帮助到您,可以帮冷月点一个赞或者加一个关注哦!
- 上一篇: 记住这6句话,原码,反码,补码概念不会忘
- 下一篇: 计算机的原码,反码,补码你了解吗?
猜你喜欢
- 2024-09-08 1.2 计算机内信息的表示与存储(计算机内部信息的表示及存储采用的是)
- 2024-09-08 C++手撕底层:位、字节、原码、反码、补码的深入理解
- 2024-09-08 算法水题练习(二)(算法题模板)
- 2024-09-08 二进制是怎么减法运算的?(二进制是怎么减法运算的原理)
- 2024-09-08 “原码、反码、补码”计算机如何更好的实现算法?
- 2024-09-08 PLC的加、减、乘、除指令有什么用?其实功能十分强大!
- 2024-09-08 【1682023】指令:NEG(088)—— 完成二进制求补的功能指令
- 2024-09-08 C语言-自运算、位运算、取反运算(c语言位运算的运算规则)
- 2024-09-08 软件设计(十三)-原码、反码、补码、移码
- 2024-09-08 原码、反码和补码:深度解析C语言中的二进制表示
你 发表评论:
欢迎- 04-09海量数据处理:定义、挑战与解决思路
- 04-09腾讯否认海量数据遭黑客窃取:系黑产利用历史资料拼凑、注水而成
- 04-09腾讯回应“海量数据被黑客窃取”:不属实,实为黑产拼凑注水历史资料而成
- 04-09海量数据(603138.SH):Vastcube G3000是基于国产硬件平台和自主可控数据库Vastbase打造的一体机产品
- 04-09海量数据:公司基于多年一体化解决方案最佳实践进行数据库和基础设施底座深度调优
- 04-09“海量数据被窃取”?腾讯紧急回应
- 04-09海量数据,用这种方式轻松获取(怎么样获取数据)
- 04-09周榜|3.24-3.30腾讯视频国漫热度排行Top10,不良人杀出重围!
- 最近发表
-
- 海量数据处理:定义、挑战与解决思路
- 腾讯否认海量数据遭黑客窃取:系黑产利用历史资料拼凑、注水而成
- 腾讯回应“海量数据被黑客窃取”:不属实,实为黑产拼凑注水历史资料而成
- 海量数据(603138.SH):Vastcube G3000是基于国产硬件平台和自主可控数据库Vastbase打造的一体机产品
- 海量数据:公司基于多年一体化解决方案最佳实践进行数据库和基础设施底座深度调优
- “海量数据被窃取”?腾讯紧急回应
- 海量数据,用这种方式轻松获取(怎么样获取数据)
- 周榜|3.24-3.30腾讯视频国漫热度排行Top10,不良人杀出重围!
- 2029年AI或终结人类文明,20%灭绝概率引全球恐慌!
- 2025年星际治理权争夺战·文明存档版(水瓶座、摩羯座)
- 标签列表
-
- 电脑显示器花屏 (79)
- 403 forbidden (65)
- linux怎么查看系统版本 (54)
- 补码运算 (63)
- 缓存服务器 (61)
- 定时重启 (59)
- plsql developer (73)
- 对话框打开时命令无法执行 (61)
- excel数据透视表 (72)
- oracle认证 (56)
- 网页不能复制 (84)
- photoshop外挂滤镜 (58)
- 网页无法复制粘贴 (55)
- vmware workstation 7 1 3 (78)
- jdk 64位下载 (65)
- phpstudy 2013 (66)
- 卡通形象生成 (55)
- psd模板免费下载 (67)
- shift (58)
- localhost打不开 (58)
- 检测代理服务器设置 (55)
- frequency (66)
- indesign教程 (55)
- 运行命令大全 (61)
- ping exe (64)
本文暂时没有评论,来添加一个吧(●'◡'●)