第2章——信息的表示和处理

  • 本章内容:在计算机上如何表示数字和其他形式数据的基本属性,以及计算机对这些数据执行操作的属性

信息存储

  • 计算机最小的可寻址的内存单位是字节(8位的块)
  • C语言中指针的值是某个存储块的第一个字节的虚拟地址
  • 字长决定了虚拟地址空间的最大大小
  • “32位程序”和“64位程序”的区别在于如何编译的,而不是其运行的及其类型

整数表示

  • 小端法:在内存中按照从最低有效字节(即数的低位)到最高有效字节的顺序存储对象。反之为大端法。网络应用程序的代码编写必须遵守已建立的关于字节顺序的规则,确保机器进行转换
  • 4个二进制位表示一个十六进制位,1个字节即8个二进制位,用2个十六进制位表示
  • sizeof(T)返回存储一个类型为T的对象所需要的字节数
  • 从机器的角度来看,程序仅仅只是字节序列,机器没有关于原始源程序的任何信息。二进制机器代码是不兼容的
  • 逻辑右移:在左端补k个0;算术右移:在左端补k个最高有效位的值。几乎所有的编译器都对有符号数使用算术右移

整数运算

  • 当执行一个运算时,如果它的一个运算数是有符号的而另一个是无符号的,那么C语言会隐式地将有符号参数强制类型转换为无符号数
  • 无论加法是否溢出,(x+y)-y总会得到x
  • 求一个位级表示的值的补码非的方法:
    • 1. 对所有位取反后加1
    • 2. 将最后一位1的前面所有位取反
  • 左移一个数值等价于执行一个与2相乘的幂相乘的无符号乘法

浮点数

  • 浮点表示对形如 v = x × 2 y v=x\times2^y v=x×2y的有理数进行编码
  • 小数的二进制表示法只能表示那些能够被写成 x × 2 y x\times2^y x×2y的数,其他的值只能近似表示
  • IEEE浮点标准用 v = ( − 1 ) s × M × 2 E v=(-1)^s\times M\times2^E v=(1)s×M×2E 符号 s s s 尾数 M M M 阶码 E E E表示一个数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值