C编程的细节(2)

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.浮点数由指数位不同而划分的几种不同存储和解释方式:规格化的,非规格化的的,特殊值。规格化浮点数的存储与解释。浮点数运算中,大多机器采用的是向偶数摄入法,也称之为向最接近的值舍入。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值