模4补码与模2补码
模4补码和模2补码都是把负小数变为正数从而规避负号问题(将负号转为数值)的一种方法。 *以负小数-0.1101为例 将其原码表示时 12不使用模操作,只是将符号位设置为1[x]原 = 1.1101 将其模2补码表示时 12使用模2操作,以2为模,相减求其补码。相当于每次加2,都等于加0[x]补 = 2 - 0.1101 = 10 - 0.1101 = 1.0011 将其模4补码表示时 123模4补码也称变形补码使用模4操作,以4为模,相减求其补码。相当于每次加4,都等于加0[x]补 = 4 - 0.1101 = 100 - 0.1101 = 11.0011 模2补码和模4补码所加的数都是加在符号位上,并不会影响绝对值的大小,所以在进行补码乘法时,通常不会代入符号位进行相乘 基于模4补码与模2补码的特点模2补码–单符号位模4补码–双符号位 通过符号位判断溢出 一位符号位判断溢出:参与操作的两个符号数相同,但计算结果与原操作数不同,则溢出了 双符号位判断溢出:两个符号位存储相同的符号数,当计算之后结果两个符号位不同,说明溢出 一位符号位+进位情况:符号位进位与最高位数值位产生的 ...
补码、模与运算
引入补码的原因 1.原码的符号位无法参与运算 1234//例如原码 3位数值位,1为符号位[x]原 = 1 011 = -3;[y]原 = 0 101 = +5;[x]原+[y]原 = 1 011 + 0 101 = 0000 =0 ;//值不为5-3=-2 2.将减法变加法 12345678//只有负数才有补码//原因是为了将减法变成加法,用到了取模运算,减去一个数,相当于加上这个数(负数)补码//例如0-1000 - 001 //等价于0往前走1格 -->到了-1000 + 111 //等价于0往后走7格 -->到了-1,因为有个取模运算//上面这个例子就揭示了补码的意义//注意只有负数才需要补码,正数不需要,因为机器可以处理正数相加//这里正数相加也需要取模 补码的“补”的含义 其中模M=10000,所以对于1111来说他的补码就是10000 - 1111 =0001; 补码加减运算 补码相加相减应该并不陌生。但是由于bit限制,存储的位数不够,补码相加或相减得到的数字超过最大或最小值时,就会发生符号位进位–>也就是溢出。 这个时候就需要通过取模运算 ...
机器数内部运算逻辑
机器数一般都是补码,是由于补码可以对于有符号数进行机器运算。 本质上,机器处理二进制串只是做简单的与运算,不会在乎是不是补码。 我们所说的补码的运算规则是由于经过了ALU的一系列操作后,而反应的一种规则。 所以我们在做机器数的运算时,不需要管那么多运算规则(背后已经被ALU转化过了) 补码的移位对补码左移运算书里介绍的是补码左移符号位不变,仅仅数值位左移,低位补0.其实这是不准确的说法。这是建立在补码左移数值不溢出的情况。以8bit存举例。 12341111 1110 补码 -2 1111 1100 左移之后 补码-4 这是左移没有溢出的情况,发现不溢出的前提下,符号位没有变化 但是如果负数补码左移,发生了数值溢出,也就是。 123451011 1111 补码 -651111 1110 左移 补码 -2由于8bit小负数-128,-65x2=-130<-128,发生溢出如果按照符号位不变的规则,仅仅移动数值位,发现并没有左移x2 以另一种方式左移,也就是将符号位一起参与左移。 123 1011 1111 补码 -6510111 1110 左移 补码 -130向 ...
计算机组成原理
计算机系统概述 计算机硬件基本组成冯诺依曼机1234561.计算机由五大部件组成2.指令和数据以同等地位存于存储器,可按地址寻访3.指令和数据用二进制表示4.指令由操作码和地址码组成5.存储程序(将指令以代码形式事先输入计算机主存中,然后按程序规定顺序执行)6.以运算器为中心 现代计算机12341.由于以运算器为中心存取效率低,改为了以存储器为中心2.CPU=运算器+控制器3.CPU+主存储器=主机(注意这里的主机与平时说的主机有区别,不包含硬盘、风扇)4.辅存,就是硬盘归于I/O设备,App存储在辅存,只有运行时,才会将代码读取到主存运行 CPU结构121971年之后,Intel发明微处理器后,将MAR MDR集成到CPU里在那之后CPU=运算器+控制器(包括了MAR+MDR) 各个硬件工作原理主存储器 12MAR:存储器地址寄存器,用于存放所要访问的主存单元的地址。与存储器空间有关。MDR:存储器数据寄存器,用于存放向主存写入的或从主存中读出的信息。与存储字长相等。 1234存储体1byte字节=8bit比特1B=1 byte1b=1 bit 运算器 123456乘积高位: ...
CMD命令
调出远程桌面控制 1mstsc 输入ip地址 查看连接过的wifi密码 1.查看历史所有wifi 1netsh wlan show profiles 2.查看指定wifi的密码 1netsh wlan show profile name="wifi名" key=clear 查询本机当前ip地址 查看当前局域网ip和其他信息 1ipconfig 查看更详细信息 1ipconfig /all 查看当前外网地址 1curl -L ip.tool.lu ping检测ip地址或服务器网络情况 短暂监测 1ping (+要检测的ip地址/绑定了ip的域名) 持续监测 1ping (+要检测的ip地址/绑定了ip的域名) -t 调出资源监测器 1perfmon.msc 监测磁盘、网络、CPUz占用率 查看电脑当前所有用户 查看用户名 1net user 删除用户名 1net user 名字 /del 修复丢失或损坏的系统文件 1工具可以允许用户扫描所有受保护的系统文件,并且检查系统文件的完整性,然后恢复Windows损坏的系统文件 1sfc ...
git
基本配置当安装Git后首先要做的事情是设置用户名称和emailt地址。这是非常重要的,因为每次Git提交都会使用该用户信息 设置用户信息 git config --global user.name "itcast" git config --global user.email "hello@iteast.cn" 查看用户信息 git config --global user.name git config --global user.email 获取本地仓库及其基础操作指令 初始化仓库文件夹:git init git status:查看的修改的状态(暂存区、工作区) git add 单个文件名|通配符.:工作区->暂存区 git commit -m '注释内容':暂存区->本地仓库的当前分支 git commit -a -m "提交信息" :同时add 和 commit git-log:查看提交日志(q退出查看) git reset --hard [commitID] : 回退状 ...
C语言(一)
数据类型 类型 字节数 说明 int 4字节 float 4字节 形式->0.123 或 1.23e-1 double 8字节 双精度浮点型 char 1字节 与int类型可通用,printf(“%c\n”,c+32);–>a 字符串 字符数+1 字符串结尾\0字符不显示,用于判断字符串结束,因此+1 一个字节byte = 8 bit; 1 byte = 0000 0000 补充 类型 32位(byte) 64位(byte) char 1 1 short 2 2 int 4 4 long 4 8 long long 8 8 float 4 4 double 8 8 printf函数printf函数的具体代码格式 写法 含义 %c 字符 %d 带符号整数,-左对齐,不带右对齐(printf函数默认靠右对齐) %x 无符号十六进制数,用小写字母 %X 无符号十六进制数,用大写字母 %f 浮点数;%5.2f显示5位数字,并带有2位小数的浮点数 %s 一串字符,%10s代表 ...
markdown语法
表格表格写法 要添加表,请使用三个或多个连字符(---)创建每列的标题,并使用管道(|)分隔每列。您可以选择在表的任一端添加管道。 1234| Syntax | Description || ----------- | ----------- || Header | Title || Paragraph | Text | Syntax Description Header Title Paragraph Text 1234| Syntax | Description || --- | ----------- || Header | Title || Paragraph | Text | Syntax Description Header Title Paragraph Text 对齐标题行中的连字符的左侧,右侧或两侧添加冒号(:),将列中的文本对齐到左侧,右侧或中心。 1234| Syntax | Description | Test Text || :--- ...
数据结构
绪论数据结构概念 概念: 数据元素:一个数据体,考虑为一个人,一份订单… 数据项:数据体内的各项,人的信息项,订单的信息项… 数据对象:具有相同性质,数据元素的集合 数据类型:是指一个值得集合,和定义在此集合上一组操作的总称 原子类型:基本数据类型 结构体运算:+ - * % … 结构类型:结构体(可以再分为若干分量) 结构体运算–>封装为函数 抽象数据类型:抽象数据组织及与之相关操作(描述了数据的逻辑结构和抽象运算),可以用其定义一个完整的数据结构 数据结构:相互间存在一种或多种特定关系的数据元素的集合 数据结构三要素: 逻辑结构 - 线性结构 - 非线性结构(集合结构、树形结构、图状结构) 存储结构 - 链式存储:离散存放的 - 顺序存储:占用大片连续空间 - 索引存储 - 散列存储 数据的运算:比如,栈的抽象运算是先进后出 课后习题123456789101112131415161718192021221.数据的逻辑结构独立于其存储结构,逻辑结构是抽象表达方式,例如图的逻辑结构,采用顶点与边而图的存储结构采用二 ...
C语言(二)
单链表的新建查找链表的实现链表的实现需要定义结点的结构体类型,例如: 1234struct node { int data; // 数据域 struct node *next; // 指针域}; 然后需要创建一个头指针,用于指向链表的第一个结点,例如: 1struct node *head = NULL; // 创建一个空链表 接下来,可以通过动态分配内存的方式,创建新的结点,并将它们链接起来,例如: 1234struct node *p = (struct node *)malloc(sizeof(struct node)); // 创建一个新结点p->data = 10; // 给数据域赋值p->next = NULL; // 给指针域赋值head = p; // 将头指针指向新结点 这样就实现了一个只有一个结点的链表。如果要添加更多的结点,可以重复上述过程,并将新结点的地址赋给前一个结点的指针域,例如: 1234struct node *q = (struct node *)malloc(sizeof(struct node)); ...










