程序设计基础笔记

162 阅读2分钟

虽然书烂 但是也有一些有用的内容 就在这篇里记录一下

概述

进制

  • 数制:二进制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

  • 转换
  1. 2到10 每位数字乘以对应位权后相加 16到10同理
    image.png
  2. 10到2 除以2逆向取余法 10到16同理
    77a807754e74698cc69891ba0dcbbee.jpg
  3. 十进制小数转二进制 乘2取整 顺序排列 10到16同理 用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数 部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。 eg 0.68D = 0.10101B(精确到第五位) image.png
  4. 2到8 取三合一 2到10 取四合一 8到2 一变三 16到2 一变四
  • 原码 第一位是符号位
  • 反码 正数同原码 负数符号位不变 其他位取反
  • 补码 正数同原码 负数反码+1 见C语言笔记1
  • 比特是最小单位 也叫位 1字节=8比特 1字=2字节