原码,反码,补码

原码,反码,补码

正数 : 原码 == 反码 == 补码

负数:

负数的反码 = 最高位符号位不变 + 其他位取反

取反就是 (1-bi)

一个k位的数,,如果要取反,,,k位全1,,也就是2的k次方-1,,然后再去减去原来的数,就是取反的数,,,

负数的反码,最高位是符号位,也就是最高位是不计算的,,,假设一个4位的数,k表示位数,k为4

他的原码 =

他的反码 =

2的k次方是一轮,,因为第一个数是符号位,,2的k-1次方是1轮,减去1,,,得到全1,,,全1减去原码 ==反码

另一种推导:


补码

计算机中用来表示有符号整数的一种编码方式,,核心作用是让加法和减法可以用同一套加法电路来计算,简化硬件设计

计算机里面实际存储的都是补码

模运算: 求余数的运算,数学上记作mod,日常也叫取模,,,

在模为256的系统中,,任何数加减256,结果都和原来等价

同余: 两个数除以同一个模,得到的余数相同,,就说这两个数是同余

同余正数:一个数在某个模下,最小正的同余数,,,模运算之后,把0换成模数本身,得到的那个最小正余数

补码的本质: 在这个对应的模下的同余正数

补码 = 反码 +1

反码是全1去减去 原码 ,, 全1,不是一轮,,,全1 加上 1 ,,才是一轮,,也就是补码

名字:

  • 函数: 每一个输入x,必须有唯一确定的一个输出y
    • 定义域 :输入的值
    • 陪域 : 目标,,输出允许落在哪个大范围
    • 值域 : 真正算出来的一对结果
  • 单射 : 两个不同的输入 x1,x2,对应的输出y1,y2也一定是不同的
  • 满射 : 函数输出集合里,每一个元素,都至少被一个输入对应到了,没有被漏掉的输出,,就是你算出来的结果必须把整个大范围的陪域全部填满,用光,一个不剩,,只要陪域里面有一个没算出来,就不叫满射
  • 双射: 既是单射,又是满射,,, 也就是一一对应,没有浪费,也没有冲突,,,双射一定有反函数,每个输出都能找到一个唯一的输入

在固定n位的情况下,,补码和数之间的转换是一个双射

相关推荐
云计算练习生15 小时前
什么是文件权限?Linux 中 rwx 与数字权限的对应关系
linux·运维·服务器·操作系统·文件权限管理
小oo呆18 小时前
【学习心得】Python多进程
python·操作系统
硅基手札19 小时前
操作系统设计思想系列 06 · FreeRTOS 深度 — 极简可移植范本
架构·操作系统·freertos·实时操作系统·嵌入式开发·设计思想
m0_547486661 天前
《计算机操作系统》全套PPT课件(武汉大学)
操作系统·计算机操作系统
2CM_Embed3 天前
μC/OS-II 内核结构零基础详解(二):任务控制块、就绪表、调度器与中断切换
操作系统
MicrosoftCloud3 天前
操作系统 02|进程到底被谁推着走?
操作系统·线程·进程·pcb·408·进程状态·调度
坐看风云变幻3 天前
《系统架构师成长之路》第 2 期|计算机基础:从一次 malloc 看懂内存管理
操作系统
2401_872418783 天前
操作系统|进程管理、线程、系统调用、进程间通信与信号
操作系统·pcb·os
艾iYYY4 天前
【无标题】
linux·开发语言·网络·操作系统
打不了嗝 ᥬ᭄5 天前
计算机系统基础:异常、中断与 I/O 的完整脉络
操作系统·计算机系统基础·linux系统调用·异常与中断·io与dma