信息的表示
信息的表示&处理
信息存储
c/c++允许多种实现方式、java则有精确的数据格式&编码(良好的可移植性)
java只支持有符号整数,并且以补码实现
>>为算数右移 >>>为逻辑右移
从机器的角度来看,程序仅仅是字节序列
位运算^交换两个变量的值:不需要第三个变量
&&、||的短路特性
移位实际会先取模
整数
计算机执行的整数运算实际上是一种模运算

-TMin = TMin
UMax = 2TMax+1
usigned 做for循环索引
sizeof( )返回无符号
截断n位 视为取模2^n
补码复数右移n位,并不向0舍入,需要先加n个1
❓counting down with unsigned
网络中大端传输,机器基本都是小端,需要在接口做转换(socket)
### 一些漏洞
int转size_t
malloc时使用乘法但没检查溢出
浮点数

指数偏置值编码 相比补码更好比较
相同指数域的部分 在数轴上均匀分布
随着指数域+1,分布间距*2
🤔向偶数舍入
4舍6入5取偶
统计原理,保证向上与向下取整概率1:1,总体最接近实际结果
小数点后n位,向1/2^n 舍入
浮点加法不可结合
类型转换时会改变位的表示 单精度、双精度...
整型与无符号整型就不会

浙公网安备 33010602011771号