【2】信息的表示和处理
1.现代计算机存储和处理的信息都以二值信号表示。
2.机器为什么要使用二进制进行存储和处理?
答:二值信号能够很容易的被表示、存储、传输。例如:
可以表示为穿孔卡片上有洞和无洞、导线上的高压和低压,顺逆时针的磁场。
3.大多数机器使用8位的块或者byte(字节),作为最小可寻址的内存单位,而不是访问内存中的单独位。
4.机器级程序将内存视为一个非常大的字节数组,称为虚拟内存。
内存的每个字节都由唯一的数字来标识,称它为地址。
所有的地址集合就称为虚拟地址空间。
5.根据机器的不同,我们可以将存储顺序分为大端法和小端法。
大端法:字节值从小到大的排序。
小端法:字节值从大到小的排序。
大多数的inter兼容机都只用小端模式;
IBM和Oracle大多数机器按大端模式操作;
安卓和IOS都只能运行小端模式。
一旦选择特定的操作系统,那么字节的顺序就固定下来了。
PS:至今也没确定统一的字节顺序,所以可以根据存储的数据不同,选择相应机器,可提高性能,也可以买双端法的处理器。
下面使用代码测试不同系统的端显示:
环境:windwos10 64位 处理器:Inter I7-7500U
运行结果:
结果:int和float的结果是一样的,指针值和机器相关。
值12345的int十六进制表示为0x00003039.
可以看出在windows系统上最低的字节值0x39最先输出,所以windows使用的小端法。
其他小端法系统为Linux32,linux64。
在sun为大端法机器。
6.不同的机器类型使用不同的且不兼容的指令和编码方式;
即使是完全一样的进程,运行在不用系统上也会有不同编码规则,因此二进制代码是不兼容的。
二进制代码很少能在不同机器和操作系统组合之间移植。
7.确定一个位级表达式的结果的最好方法就是将十六进制参数扩展了二进制表示并执行二进制运算,然后转回十六进制。
8.补码,位运算。
根据补码转换无符号数公式:
x+2w x<0
T2Uw(x)=
x, x≥0
x T2U4(x)
-8 8
-3 13
5 5
还有无符号转换为补码等公式不一一列举了,具体请看该书。
其他:
(摘自其他博主 https://www.cnblogs.com/tjudzj/p/4190878.html)
补码:
(1)正数的补码:与原码相同(已知原码求补码)
例如:+9的原码是0000 1001。补码也是0000 1001。
(2)负数的补码:符号位为1,其余位为该数绝对值的原码按位取反,然后整个数加1。
例如:-7原码为1000 0111(高位为符号位,1表示负数,0表示正数),补码为1111 1001.
位运算:
(1)正数右移位(以85为例,可以视作int 、long、uint、ulong之一,按哪个规则都行)
85的二进制表示: 0000 0000 0000 0000 0000 0000 0101 0101
85右移(>>)3位: 0000 0000 0000 0000 0000 0000 0000 1010
移位后的结果十进制表示: 10
(2)负数右移位(以-85为例,可以视作int 、long之一,此处视为int,32位)
-85的二进制补码表示: 1111 1111 1111 1111 1111 1111 1010 1011
-85左移(>>)3位: 1111 1111 1111 1111 1111 1111 1111 0101
移位后结果的原码表示: 1000 0000 0000 0000 0000 0010 0000 1011
移位后的结果十进制表示: -11
最后,第二章习题太多,具体请看该书并实现。
转载于:https://www.cnblogs.com/Zhengxue/p/8973656.html
【2】信息的表示和处理相关推荐
- 深入理解计算机系统2——信息表示和处理
现代计算机存储和处理的信息以二值信号表示.这些微不足道的二进制数字,或者称为位(bit),奠定了数字革命的基础. 把位组合在一起,再加上某种解释,即给不同的可能位模式赋予含义,我们就能够表示任何有限集 ...
- 《深入理解计算机系统》第2章 信息的表示与处理
<深入理解计算机系统>第2章 信息的表示与处理 允许任何人转载,仅作为学习交流. 萌新一枚,本着交流学习经验的心态,写了这篇文章.若文章有误,还请各位大佬指正,谢谢(๑•̀ㅂ•́) ✧ 2 ...
- 《深入理解计算机系统-程序结构》读书笔记
1.计算机系统漫游 计算机系统是由硬件和系统软件组成的,他们共同工作来运行应用程序.在<深入理解计算机系统>一书中将会学到很多实践的技巧.例如:了解编译器是如何实现过程调用的.避免缓冲区溢 ...
- csapp 、sicp 、深入理解计算机系统、 计算机程序的构造和解释
CSAPP 第一版的英文版 深入理解计算机系统第一版中文版 这个是csdn账号 这里上传文件大小在10M以内 这个pdf是19+M的 深入理解计算机系统第二版的中文版下载 第一版英文版的介绍原书 ...
- 《深入理解计算机系统》第七章读书笔记
<深入理解计算机系统>第七章读书笔记 第七章:连接 连接 1.连接:将各种代码和数据部分收集起来并组合成为一个单一文件的过程.这个文件可被加载或拷贝到存储器并执行. 2.连接可以执行于编译 ...
- bilibili深入理解计算机系统笔记(2):第一次代码重构,汇编模拟器,递归,指令周期实现。
文章目录 深入理解计算机系统笔记(2) 第一次代码重构 可变参数输出print函数 bitmap学习 P10 有限自动机 指令周期 递归求和函数c语言和汇编语言 回调函数的实现 call和ret指令的 ...
- 深入理解计算机系统9个重点笔记
引言 深入理解计算机系统,对我来说是部大块头.说实话,我没有从头到尾完完整整的全部看完,而是选择性的看了一些我自认为重要的或感兴趣的章节,也从中获益良多,看清楚了计算机系统的一些本质东西或原理性的内容 ...
- 2020-11-16(深入理解计算机系统2.4节选)
最近迷上了深入理解计算机系统这本书,看了有无符号数转换,卡了一个点,然后水了一下博客,发现这篇挺好的博客,讲解挺详细,希望有兴趣的能多花时间阅读,本篇博客主要讲解了有符号数和无符号数之间的转换: 1. ...
- 1、深入理解计算机系统 笔记,系统综述
1.系统的硬件组成 Figure1 Hardware organization of a typical system. CPU: Central Processing Unit, ALU: Arit ...
- 《深入理解计算机系统(英文版.第2版)》
<深入理解计算机系统(英文版.第2版)>china-pub计算机新书推荐 本书双色印刷,计算机软硬件理论结合讲述的经典之作. 页码:1077 基本信息原书名: Computer Syste ...
最新文章
- 在Mac上使用pip3安装Jupyter Notebook并简单使用
- 粒子耗尽 粒子滤波_如何使用粒子的强大蓝牙API
- 怎样用java编写日志_用JAVA写一个日志类程序以供大家学习
- 聊聊微服务的服务注册与发现
- 毕业后两三月的本科毕业生,他们都怎么样了
- 支持C# 5.0的async语法的反编译器出来了
- SHLL脚本从1到100自加
- [Python学习] 专题二.条件语句和循环语句的基础知识
- Cannot set property 'value' of undefined
- js的简单介绍及基本用法
- centOS7.6安装MySQL8
- 2014 找工作总结
- 关于HTML页面跳转的5种方法分享。
- HTML个人网站设计(源码)
- 一年级上册计算机教学计划,一年级信息技术上册教学计划一年级信息技术教学计划...
- iOS中检测硬件和传感器
- 大一python期末考试难吗_python期末考试复习
- 高职高专计算机b级,高职高专英语B级考试真题.docx
- 计算机所有端口代号,端口类型
- 非参数估计-高斯核平滑Gaussian kernel smoothing-非参数密度估计
热门文章
- Job 失败了怎么办?- 每天5分钟玩转 Docker 容器技术(133)
- verilog经验谈
- 初识Android应用程序的五大基本组件
- qt开发环境 - c++之输入,输出,名字空间定义,名字空间指令,名字空间声明
- 计算机组成原理的实验课心得,计算机组成原理移位控制实验心得.docx
- python有大括号吗_只有我一个人觉得Python取消了大括号而显得结构更加混乱了吗?...
- 一键 linux桌面安装vnc,Ubuntu 16.04 LTS一键安装VNC
- abnf java实现_详细讲解如何利用Java实现组合式解析器?
- docker卸载命令_Docker入门篇
- 分析以太网帧结构_传统以太网中的——中继器及集线器