zoukankan      html  css  js  c++  java
  • 系统中信息的表示和处理 --《深入理解计算机系统》第二章读书笔记

    1.信息存储

    • 系统将8位的块作为最小的可寻址存储器单位,机器级程序系统看成一个大的数组,然后通过地址来获得存储器中的这些块的内容。
    • 数据在计算机中的存储都是用二进制,不过二进制不易表示,一般我们用十六进制来表示。如八位的十六进制范围为00~FF。
    • 计算机的字长代表其整数数据的大小,同时也是系统絮凝地址空间最大大小。
    • C语言中对布尔代数的操作有提供几种方式,比如&(与),|(或),~(取反),^(异或)。

    2.整数表示

    • 无符号数的编码,无符号数与有符号数的区别在于无符号数的最高位作为数值而不是符号表示。
    • 无符号数函数:,w表示为位数,(B2U的意思是Binary to Unsigned)
    • 有关有符号数的表示有三种,分别是原码,补码,反码,计算机存储和计算一般用的就是补码。
    • 补码编码函数:,w为位数
    • 无符号数32位最大和有符号数32位最大最小值
      16进制 10进制
    Umax(32位) 0xFFFFFFFF 4294967295
    Tmax(32位) 0x7FFFFFFF 2147483647
    Tmin(32位) 0x80000000

    -2147483648

    3.有符号数和无符号数转换

    • 对大多数C语言而言,处理同样字长的有符号数和无符号数之间相互转换规则是:数值可能改变,但是位模式不变。
    • 有符号是向无符号数转换:
    • 在C语言中,当在执行一个运算中有一个运算数是有符号的而另一个是无符号数的话,C语言会强制将有符号数转换成无符号数参与运算,并假设两个数都是非负的。

    4.整数运算

    • 无符号加法:,当运算溢出时(超过w位所能表示的最大值)就会截断,即将溢出位移除。
    • 补码加法:,同无符号加法一样,若运算结果溢出(有符号位分正溢出和负溢出),即将溢出值移除。
    • 补码乘法:,C语言中处理补码乘法运算结果是将2w位的乘积截断为w位(高位截断)。

    5.浮点数的表示

    • 现代计算机中的浮点数表示基本采用IEEE浮点标准,以32位为例,s表示符号位,8位的exponent表示阶码,剩下的23位为尾数

  • 相关阅读:
    Hibernate save, saveOrUpdate, persist, merge, update 区别
    Eclipse下maven使用嵌入式(Embedded)Neo4j创建Hello World项目
    Neo4j批量插入(Batch Insertion)
    嵌入式(Embedded)Neo4j数据库访问方法
    Neo4j 查询已经创建的索引与约束
    Neo4j 两种索引Legacy Index与Schema Index区别
    spring data jpa hibernate jpa 三者之间的关系
    maven web project打包为war包,目录结构的变化
    创建一个maven web project
    Linux下部署solrCloud
  • 原文地址:https://www.cnblogs.com/listenfwind/p/5848978.html
Copyright © 2011-2022 走看看