1.存储器中每个字节都有唯一的数字来标识(以字节为单位编码),为它的地址,内存可以看成一个大数组,具有随机访问的性质。
2.十进制数化成n进制数的方法,除n取余逆置。
3.代码的适应性,可移植性。需要考虑不同机器的数据类型长度的支持。语言可分为编译型和解释型,C语言是编译型的,需考虑其移植性。而java是解释型的,其能适应各种平台。
4.移位运算和整型类型的隐式转换,右移的逻辑移位和算术移位。
5.整型数据类型家族,范围不对称,六十四位机器下与三十二位机器下的类型只有long长度有变。
6.二进制序列与十进制数的的双射特性。
7.大多数机器使用的是补码编码。计算机中以补码形式编码,也以补码形式解读。补码和反码,原码没有直接关系,补码=反码+1,只是原码,补码之间的转换公式。
8.有符号数与无符号数运算结果是无符号数。
9.有符号数与无符号数之间的类型转换,保持位值不变,改变了解释这些位的方式。所以会发生有符号负数转化无符号变成正数,小的有符号负数化成无符号数会变成极大的正数。例如:-1<0u。
10.用加法,减法,和乘法的组合来消除很多整数乘以常数的情况,例如y*14,利用等式14=2^3+2^2+2^1,编译器会将乘法重写为(y<<3) + (y<<2) + (y<<1)。或者利用14=2^4-2^1,将等式重写为(y<<4) - (y<<1)。
11.浮点数由指数位不同而划分的几种不同存储和解释方式:规格化的,非规格化的的,特殊值。规格化浮点数的存储与解释。浮点数运算中,大多机器采用的是向偶数摄入法,也称之为向最接近的值舍入。