计算机内存数值存储方式进制

article/2025/9/17 7:55:42

进制概念

进制也就是进位制,是人们规定的一种进位方法。对于任何一种进制,x进制表示某一位置上的数运算时是逢x进一位。十进制是逢十进一、十六进制是逢十六进一、二进制是逢二进一。

各进制数表示

八进制是逢8进1,所以到8的时候向前进一位,变成10;十六进制10-15用A-F表示,逢16向前进一位,即为10(所有进制都是从最小0开始)

64进制,所用的字符是0-9,a-z,A-Z,+,/

“0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+/”

二进制

二进制数据是用0和1两个数码来表示的数,规则是逢二进一

bit(比特):一个二进制代表一位,一个位只能表示0或1两种状态。数据传输习惯以“位”(bit)为单位

Byte(字节):一个字节为8个二进制位,计算机中最小的存储单位是字节。数据存储习惯以“字节”(Byte)为单位

1k=1024个字节(B)

八进制

一种以8为基数的计数法,采用0,1,2,3,4,5,6,7八个数字,逢8进1。以数字0开始表明该数字是八进制。

八进制的数和二进制的数可以按位对应(八进制一位对应二进制三位)

十六进制

由0-9,A-F组成,字母不区分大小写

十六进制的数和二进制数可以按位对应(十六进制一位对应二进制四位)

进制转换

1. 十进制转二进制方法

- 十进制的整数转换成二进制

用十进制数除以2,分别取余数和商,商为0的时候,将余数倒着数就是转化后的结果

- 十进制的小数转换成二进制

小数部分和2相乘,取整数,不足1取0,每次相乘都是小数部分,顺序看取整后的数就是转换后的结果

1)乘的时候只乘小数部分

2)0.432只有3位,所以只需要3位,0 0 1 就停止计算

3)0.432的二进制数为:0.011 

2. 八进制与二进制转换

1)二进制转八进制

三位一组,将二进制数对应到十进制整数上(不超过8)

101  001  111  011

  5      1      7      3

 2)八进制转二进制

 1       2     5

001  010  101 

3. 十进制与八进制转换

1)十进制转八进制

用十进制数除以8,分别取余数和商,商为0的时候,将余数倒着数即为转化后的结果

4. 十六进制与二进制转换

0101  0111  1010  1011  0101

  5         7       A        B        5

5. 十进制转化十六进制

用十进制数除以16,分别取余数和商,商为0的时候,将余数倒着数就是转化后的结果

6. 其他转换

 进制转换总结

(1)十进制转为x进制

   用十进制数除以x,分别取余数和商,当商为0的时候,将余数倒着数就是转化后的结果

(2)二进制转八进制

   3个二进制位为一个八进制,将二进制对应到八进制

(3)二进制转十六机制

   4个二进制位为一个十六进制,将二进制对应到十六进制

(4)x进制转十进制

   每位数乘以x的n次方再相加(几进制权重就是多少的n次方)

   n为从低位到高位 0~n

C语言表示相应进制数 

十进制        以正常数字1-9开头,如123

八进制        以数字0开头,如0123(在八进制数前加上0)

十六进制     以0x开头,如0x123(在十六进制数前加上0x)

二进制         c语言不能直接书写二进制数

其他

相关题目:leetcode 405题

二进制位运算左移:将一个运算对象的二进制位全部左移若干位,左边的二进制丢弃,右边补0

右移同理。

int val = 3;

int ans = (val >> 4) & 0xf;   

// 0xf 是16进制写法 ,等于十进制的15,等于二进制的1111,& 0xf表示取变量的后四位

内存数值存储方式

1. 原码

原码(原始的二进制码),特点:

(1)最高位作为符号位,为0表示正数,1表示负数

(2)其他数值部分就是数值本身绝对值的二进制数

(3)负数的原码是在其绝对值的基础上,最高位变为1

以1字节(8位)的大小描述:

十进制数原码
+150000 1111
-151000 1111

+0          

-0                      

0000 0000  

1000 0000

原码不方便加减运算

2. 反码

(1)对于正数,反码和原码相同

(2)对于负数,符号位不变,其他部分取反(1-->0, 0-->1)

(3)反码运算也不方便,通常用来作为求补码的中间过渡

3. 补码

在计算机系统中,数值一律使用补码来存储

(1)对于正数,原码、反码、补码相同

(2)对于负数,补码为反码+1

(3)补码符号位不动,其他位取反,最后整个数+1,得到原码

#include <iostream>int main() {int val = -15;// printf("%x\n", val);  // c语言写法std::cout << std::hex << val << std::endl; // 十六进制return 0;
}// 输出结果为fffffff1 (补码)
// fffffff1 对应的二进制:1111 1111 1111 1111 1111 1111 1111 0001
// 符号位不变,其他取反:  1000 0000 0000 0000 0000 0000 0000 1110
// 上面+1得到原码:       1000 0000 0000 0000 0000 0000 0000 1111(最高位1表示负数,-15)

计算机中使用补码存储的原因:

  • 统一了正负0的编码
  • 正负数加减运算结果是正确的(同十进制计算结果)

        - 将符号位和其他位统一处理

        - 将减法运算转变为加法运算

        - 两个补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃


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

相关文章

计算机内存结构!

变量的三大特点&#xff1a; 数据类型、作用域、存储类型 计算机的三大组成: 1.CPU 2.内存 3.硬盘 内存与硬盘的区别&#xff1a; 1.内存中保存动态数据&#xff0c;硬盘中保存静态数据。 2.断电后内存中的数据丢失&#xff0c;硬盘中的数据不会丢失。 3.执行程序时&#xff0c…

内存管理计算

一、补充概念 为了保证CPU执行指令时可正确访问存储单元&#xff0c;需将用户程序中的逻辑地址转换为运行时由机器直接寻址的物理地址&#xff0c;这一过程称为地址映射。地址映射一般是由硬件完成的&#xff1b;页表项的相关状态位由硬件确定。 最佳适应算法&#xff08;空闲内…

计算机内存和磁盘的关系

计算机内存和磁盘的关系 前言 上篇文章详细讲了计算机内存的物理结构&#xff0c;逻辑结构以及在内存的基础上理解几种常见的数据结构。但是&#xff0c;计算机系统出了内存之外&#xff0c;还有一个非常重要的硬件&#xff0c;那就是磁盘。他们都是用于计算机存储&#xff0…

电脑硬件——内存

内存是一台电脑CPU与硬盘间进行数据传输的中转站&#xff0c;内存会影响着电脑的稳定性&#xff0c;不稳定的内存可能会导致蓝屏、黑屏、死机甚至电脑无法亮机等故障。 内存的作用&#xff1a; 在我们的电脑工作时&#xff0c;CPU和硬盘之间会无时不刻地进行大量的数据交换&am…

计算机(二):计算机存储系统(内存、外存)。

前言&#xff1a;我总结了汇编语言课本和通信书上的知识点给大家呈现。 一、计算机存储系统&#xff08;文解&#xff09;&#xff1a; 存储分为&#xff1a;内存&#xff08;内部存储器&#xff09;、外存&#xff08;外部存储器&#xff09;。 内存分为&#xff1a;CPU上的寄…

计算机内存介绍

我们这里说的内存啊&#xff0c;其实就是说的我们电脑里面的内存条&#xff0c;所以嘞&#xff0c;内存就是内存条&#xff0c;数据要放在这上面才能被cpu读取从而做运算&#xff0c;还有硬盘&#xff0c;就是电脑中的C盘啥的&#xff0c;一个程序需要运行的话需要向内存申请一…

计算机的内存

1.内存的物理机制 内存和CPU一样&#xff0c;都是由大量引脚构成的集成电路&#xff0c;内存大致分为这几类&#xff1a;1.ROM:只能进行读取&#xff1b;2.DRAM&#xff1a;需要经常刷新就能进行保存数据的可被读取和写入的内存&#xff1b;3.SRAM&#xff1a;不需要经常刷新就…

【操作系统】计算机内存管理

文章目录 1.内存管理目标rom-ram2.计算机内存的惰性分配3.内存管理-分而治之思想4.内存不够的情况处理5.内存扩容swap配置实战6.Linux的free命令详解7.Linux的top命令详解 1.内存管理目标rom-ram &#xff08;1&#xff09;为啥要做内存管理 计算机不可能所以用户进程和系统所…

计算机|内存知多少

​1、硬件层面 内存就是名为内存IC的电子元件。&#xff08;IC&#xff0c;集成电路&#xff0c;内存也是一种集成电路&#xff09; 内存IC的引脚配置 那这个内存IC能存多少数据&#xff1f; 数据信号引脚有D0~D7一共8个&#xff0c;表示一次输入输出8位数据&#xff08;一个字…

计算机底层知识之内存

❝ 渔夫出海前&#xff0c;并不知道鱼在哪里&#xff0c;可是他们还是选择出发&#xff0c; 因为他们相信&#xff0c;一定会满载而归。人生很多时候&#xff0c;是「选择了才有机会&#xff0c;是相信了才有可能」。 -- 「稻盛和夫」 ❞ 大家好&#xff0c;我是「柒八九」。 …

计算机基础之内存

目录 1.什么是内存2.内存的物理结构3.内存的使用4.数据在内存中为什么用二进制表示5.二进制的补码 1.什么是内存 内存是与cpu沟通的桥梁&#xff0c;计算机中所有程序的运行都要依靠内存&#xff0c;内存对计算机的影响非常大&#xff0c;内存又被称为主存&#xff0c;作用就是…

计算机基础- -认识内存

计算机基础- -认识内存 文章目录 计算机基础- -认识内存一、什么是内存二、内存的物理结构1.内存的读写过程2.内存的现实模型 三、内存的使用1.指针2.数组是内存的实现3.栈和队列4.链表5.二叉树 一、什么是内存 内存(Memory) 是计算机中最重要的部件之一&#xff0c;它是程序与…

电脑内存介绍(精心整理)

内存是电脑的主要硬件之一&#xff0c;主要用于存储和交换正在运行的程序和数据。简单的说就是&#xff0c;断电之后&#xff0c;内存存储的数据就会消失。所以我们常用的软件需要安装在硬盘等外存设备里&#xff0c;打开游戏或者软件时&#xff0c;就需要把他们调出到内存中运…

四大CPU架构的区别

我们目前使用比较多的架构有&#xff1a;ARM、RISC-V、MIPS&#xff0c;X86等等。其实还有一些指令的&#xff0c;但是其他的指令都是比较小众&#xff0c;只在专业的领域使用。 我们目前使用比较多的架构有&#xff1a;ARM、RISC-V、MIPS&#xff0c;X86等等。其实还有一些指…

四大CPU架构区别

我们目前使用比较多的架构有&#xff1a;ARM、RISC-V、MIPS&#xff0c;X86等等。其实还有一些指令的&#xff0c;但是其他的指令都是比较小众&#xff0c;只在专业的领域使用。 ARM架构是一个32位精简指令集处理器架构&#xff0c;其广泛地使用在许多嵌入式系统设计。它主要从…

Linux 查看CPU架构及内核版本

涉及arch命令和/proc/version文件 1 查看CPU架构 有些软件的安装需要和CPU架构相匹配&#xff0c;如JDK等等&#xff0c;所以需要确定主机的CPU架构类型。可使用命令arch查看Linux系统的CPU架构&#xff0c;如下&#xff1a; arch2 查看内核版本 文件/proc/version中包含系统…

如何查看手机的CPU架构

几款专门获取手机设备信息的App&#xff1a; 通过这些App&#xff0c;你能看到你的安卓手机很多核心底层的信息&#xff0c;对于开发者而言&#xff0c;这些信息对于开发App时的写代码或者debug何其重要&#xff01; 这些App都能查看像CPU架构、GPU、传感器、温度、存储、电池…

Android CPU架构

Android CPU架构有&#xff1a;arm64-v8a、armeabi-v7a、armeabi、x86 CPU架构 1&#xff09;arm64-v8a 第8代、64位、ARM处理器 包含AArch32、AArch64两个执行状态对应32、64bit 支持arm64-v8a、armeabi-v7a、armeabi 2&#xff09;armeabi-v7a 第7代、ARM处理器 …

cpu架构知识

微信公众号&#xff1a;运维开发故事&#xff0c;作者&#xff1a;夏老师 Part1架构概述 从系统架构来看&#xff0c;目前的商用服务器大体可以分为三类 对称多处理器结构(SMP&#xff1a;Symmetric Multi-Processor) 非一致存储访问结构(NUMA&#xff1a;Non-Uniform Memory…

CPU架构名称

Coffee Lake-Refresh 第九代酷睿 2018-2019年 14nm Coffee Lake 第八代酷睿 2017-2018年 14nm Kaby Lake 第七代酷睿 2016年 14nm Skylake 第六代酷睿 2015年 14nm Broadwell 第五代酷睿 2014-2015年 14nm Haswell 第四代酷睿 2013年 22nm Ivy Bridge 第三代酷睿 2012年 22nm S…