虽然书烂 但是也有一些有用的内容 就在这篇里记录一下
概述
进制
- 数制:二进制B 八进制O(0+0 ~ 7) 十进制D 十六进制H(0+x/X+0 ~ 9 a ~ f/A ~ F)
- 数码:0 ...n-1
- 基数:2 8 10 16
- 位权:进制^n (数字在第几位n就是几(个位数是第0位
eg 十进制123.45 1的位权是10^2 2的位权是10^1 3的位权是10^0 4的位权是10^-1 5的位权是10^-2 123.456=1 * 10^2+2 * 10^1+3 * 10^0+4 * 10^-1+5 * 10……-2
- 转换
- 2到10 每位数字乘以对应位权后相加 16到10同理
- 10到2 除以2逆向取余法 10到16同理
- 十进制小数转二进制 乘2取整 顺序排列 10到16同理
用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数 部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。 eg 0.68D = 0.10101B(精确到第五位)
- 2到8 取三合一 2到10 取四合一 8到2 一变三 16到2 一变四
- 原码 第一位是符号位
- 反码 正数同原码 负数符号位不变 其他位取反
- 补码 正数同原码 负数反码+1 见C语言笔记1
- 比特是最小单位 也叫位 1字节=8比特 1字=2字节