当前位置:网站首页>C语言-大白话理解原码,反码和补码
C语言-大白话理解原码,反码和补码
2022-08-05 04:18:00 【π指针】
谢谢读者的阅读
原码,反码和补码
1.理解存储类型
- 数据分为字节型和字型数据
字节型数据占8位,它的原码,反码,补码都是8位,表示0-255
字型数据占16位,它的原码,反码,补码都是16位, 表示0-65535 - 那么就有人会有疑问:8位二进制和16位二进制都为1 当然可以代表255或者65535是没错,但是我又可以代表-127,-32767呀。且慢既然这么说,那么我们是不是就肯定要搞清楚是什么存储方式了,是无符号存储还是有符号存储?
- 在8个位中,如果是无符号存储-那就是0-255没有负数,如果是有符号数那么他自己都要占用一个位所以表示为-127-128。
所以得知,我们的C语言int类型没有写unsigned的时候也是一个有符号数,他的范围是-2147483648~+2147483647,而有符号数为4,294,967,295 - 那么原码是什么存储?我们讨论原码是讨论他是有符号还是无符号的?很负责任的告诉大家,这是一个有符号的,所以我们去看八位的原码或者十六位的原码,一看就知道他是正或者是负了
2.原码,反码,补码
1.抛出三码概念
原码 :最高位是符号位,0代表正数,1代表负数,其他是0或1。
反码:正数的反码与原码一致,负数的反码是对原码按位取反,符号位不变。
补码:正数的补码与原码一致,负数的补码是对原码按位取反加1,符号位不变。
例子 00000001 (由原码得出 十进制是1)
例子 10000001 (由原码得出 十进制是-1??)
那么是不是就?
00000001
+ 10000001
------------
10000010
1+(-1) = -2??
离谱!!!!
- 但是我负责任的告诉你,这就是-1,但是直接算,肯定就不是这样算。要进行二进制的加减法,最后还是变成加法进行的。
我们是否有一个疑问,计算机-1+1直接算就不等于0了,那么计算机该怎么办,怎么算才可以等于0? - 我们要找出1+(-1)=0,使其成立,那么我们假设 -1有一个替补,是八位的未知数x
00000001
+ xxxxxxxx
------------
00000000
- 可以得到如果是11111111加1 变成100000000就会造成位运溢出,丢失最高位1,那么这不就是十进制的0吗?所以我敢肯定 要加上(-1)等于0,就是加上他的替补,他就是就是111111111
- 原来是这么算,除了最高位以外,我全部都取反 然后再+1
也正是这样,补码的概念也是如此,就是原码除了最高位后其余取反 然后 +1,然而他的正面计算过程是
例 10000001 原码
想变补码先变反码才可以,按位取反,除了最高位的符号位
例 11111110 反码
变为补码,只需要在反码后面加1就可以
例 11111111 补码 (原码除了最高位取反 然后+1)
所以,某种意义上这就变成了 1 + (-127) = 0了,但是大家别搞混,这样理解会有压力
我们还是老老实实的理解成:计算用的都是正数或者负数的补码进行计算的。
2.最后总结
引入原码 反码 和补码的目的就是为了解决减法问题,因为计算机CPU的运算器中只有加法器,要把减法转化成加法来计算。
3. 致读者
谢谢大家的阅读
边栏推荐
- 什么是ASEMI光伏二极管,光伏二极管的作用
- Machine Learning Overview
- 【Mysql进阶优化篇02】索引失效的10种情况及原理
- DEJA_VU3D - Cesium功能集 之 056-智图Arcgis地图纠偏
- 阿里本地生活单季营收106亿,大文娱营收72亿,菜鸟营收121亿
- In the WebView page of the UI automation test App, the processing method when the search bar has no search button
- MySql的索引学习和使用;(本人觉得足够详细)
- Hard power or soft power, which is more important to testers?
- 为什么刚考完PMP,就开始准备软考了?
- In the hot summer, teach you to use Xiaomi smart home accessories + Raspberry Pi 4 to connect to Apple HomeKit
猜你喜欢
The log causes these pits in the thread block, you have to guard against
What is the function of industrial-grade remote wireless transmission device?
Visibility of multi-column attribute column elements: display, visibility, opacity, vertical alignment: vertical-align, z-index The larger it is, the more it will be displayed on the upper layer
In the hot summer, teach you to use Xiaomi smart home accessories + Raspberry Pi 4 to connect to Apple HomeKit
how to measure distance from point to face in creo
Mysql's redo log detailed explanation
iMedicalLIS监听程序(2)
银行数据采集,数据补录与指标管理3大问题如何解决?
token, jwt, oauth2, session parsing
App rapid development and construction experience: the importance of small programs + custom plug-ins
随机推荐
token, jwt, oauth2, session parsing
[MRCTF2020] PYWebsite
国学*周易*梅花易数 代码实现效果展示 - 梅花心易
Redis key基本命令
mutillidae下载及安装
[Geek Challenge 2019]FinalSQL
动力小帆船制作方法简单,电动小帆船制作方法
cross domain solution
The first performance test practice, there are "100 million" a little nervous
Cron(Crontab)--use/tutorial/example
Bosses, I noticed that a mysql CDC connector parameters scan. The incremental. Sna
NPDP证书含金量高吗?跟PMP相比?
Based on holding YOLOv5 custom implementation of FacePose YOLO structure interpretation, YOLO data format conversion, YOLO process modification"
Paparazzi: Surface Editing by way of Multi-View Image Processing
App快速开发建设心得:小程序+自定义插件的重要性
Industry Status?Why do Internet companies prefer to spend 20k to recruit people rather than raise their salary to retain old employees~
About the installation of sklearn library
The most effective seven performance testing techniques of software testing techniques
4T硬盘剩余很多提示“No space left on device“磁盘空间不足
[MRCTF2020]PYWebsite