当前位置:网站首页>原反补及大小端
原反补及大小端
2022-07-24 19:17:00 【月亮嚼成星~】


作者简介:一名大一在校生
个人主页:月亮嚼成星~
个人WeChat:yx1552029968
系列专栏:C语言进阶
每日一句:别因为落入了一把牛毛就把一锅奶油泼掉,别因为犯了一点错误就把一生的事业扔掉。
计算机中的整数有三种表示方法,即原码、反码和补码。
三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位
负整数的三种表示方法各不相同。
原码
直接将二进制按照正负数的形式翻译成二进制就可以。
反码
将原码的符号位不变,其他位依次按位取反就可以得到了。
补码
反码+1就得到补码。
正数的原、反、补码都相同。 对于整形来说:数据存放内存中其实存放的是补码。
为什么呢?
在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统 一处理; 同时,加法和减法也可以统一处理(CPU只有加法器)此外,补码与原码相互转换,其运算过程 是相同的,不需要额外的硬件电路。
我们看看在内存中的存储:



我们可以看到对于a和b分别存储的是补码。但是我们发现顺序有点不对劲。 这是又为什么?
大小端介绍
什么是大端小端:
大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址 中;
小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地 址中。
假设有一个数的16进制是0x11223344

为什么有大端和小端:
为什么会有大小端模式之分呢?这是因为在计算机系统中,我们是以字节为单位的,每个地址单元 都对应着一个字节,一个字节为8bit。但是在C语言中除了8 bit的char之外,还有16 bit的short型,32 bit的long型(要看具体的编 译器),另外,对于位数大于8位 的处理器,例如16位或者32位的处理器,由于寄存器宽度大于一个字节,那么必然存在着一个如 何将多个字节安排的问题。因此就 导致了大端存储模式和小端存储模式。 例如:一个 16bit 的 short 型 x ,在内存中的地址为 0x0010 ,x 的值为 0x1122 ,那么 0x11 为 高字节,0x22 为低字节。对于大端 模式,就将 0x11 放在低地址中,即 0x0010 中,0x22 放在高地址中,即 0x0011 中。小端模式, 刚好相反。我们常用的 X86 结构是 小端模式,而 KEIL C51 则为大端模式。很多的ARM,DSP都为小端模式。有些ARM处理器还可以 由硬件来选择是大端模式还是小端模式
多谢兄弟们
码字不易,求个三连。

边栏推荐
- 【无标题】
- OPENGL学习(三)GLUT二维图像绘制
- 深度学习中Dropout原理解析
- Mysql数据库,子查询,union,limit篇
- PCI express physical layer - electrical part
- Install SSL Certificate in Litespeed web server
- [in depth study of 4g/5g/6g topic -39]: urllc-10 - in depth interpretation of 3GPP urllc related protocols, specifications and technical principles -3- how to distinguish urllc services? Detailed expl
- Analysis of the basic concept of digital warehouse
- Easily learn pytoch transfer learning to realize surface defect inspection
- 【JVM学习04】JMM内存模型
猜你喜欢

PWN learning

Literature reading: gopose 3D human pose estimation using WiFi

Machine learning_ Data processing and model evaluation

2022杭电多校第二场1009 ShuanQ(数学)

Reading notes of XXL job source code

Tcl/tk file operation

暑期牛客多校1: I Chiitoitsu(期望dp,求逆元)

How does PostgreSQL decide PG's backup strategy

Convolutional Neural Networks in TensorFlow quizs on Coursera

LTSpice software power settings
随机推荐
vim相关介绍
JS part
Wireshark simple filter rule
Analysis of several possible causes of 0xc0000005 memory violation
TCL programming style guide
Introduction to VIM
Clion configuring WSL tool chain
In the spring of domestic databases
MySQL final chapter
Web
Analysis of dropout principle in deep learning
Mysql database, subquery, union, limit
Ebpf verifier
Nftscan and port3 have reached strategic cooperation in the field of NFT data
FPGA 20个例程篇:9.DDR3内存颗粒初始化写入并通过RS232读取(上)
2022暑期杭电多校第一场1012Alice and Bob(博弈论)
Taokeeper environment setup
FPGA 20个例程篇:9.DDR3内存颗粒初始化写入并通过RS232读取(下)
Oneinstack installation and configuration PHP 8.1 and MySQL 8.0-oneinstack site building novice tutorial
MySQL1
作者简介:一名大一在校生
个人主页:
个人WeChat:yx1552029968
系列专栏:
每日一句: