c/c++ 二进制十六进制、字符与Ascii码表

二进制十六进制

  • 二进制:每位只能用0,1表示;
    c/c++ 二进制十六进制、字符与Ascii码表

  • 二进制数相加

c/c++ 二进制十六进制、字符与Ascii码表

  • 二进制到十进制的转换;
    c/c++ 二进制十六进制、字符与Ascii码表

  • 十六进制:每位只能用[0,15]来表示,其中A~F表示10,11,12,13,14,15

c/c++ 二进制十六进制、字符与Ascii码表
- 十六进制与二进制之间的转化:4位二进制表示一个16进制;
c/c++ 二进制十六进制、字符与Ascii码表
- 十六进制与10进制的转化;

c/c++ 二进制十六进制、字符与Ascii码表


c/c++ 二进制十六进制、字符与Ascii码表


计算机的数据存储

  • Bit:每位计算机用bit来存储,可以存储0,1;
  • Byte:每8个bit是一个Byte,字节,Byte是存储的最小单位;
  • 字:2个字节来存储二进制数据,16个Bit的容量;
  • 双字:4个字节来存储二进制数据32个Bit的容量;
  • 四字:8个字节来存储二进制数据64个Bit的容量;
  • 俩位16进制正好是1个字节,所以很多二进制编辑器都用16进制来表示;
  • -

计算机的数据表示

  • 无符号整数,所有的bit都用来表示数据的大小,不带符号,既不能表示负数;
  • 有符号数:最高位的bit表示符号,剩下的bit表示数据;
    正数:最高为用0,后面是数据部分;
    c/c++ 二进制十六进制、字符与Ascii码表
    负数:最高位是1,数据部分是正数的二进制取反以后再+1;
    c/c++ 二进制十六进制、字符与Ascii码表

    -正数负数相加=0
    c/c++ 二进制十六进制、字符与Ascii码表

  • 小数
    科学计数法的方式来存储小数;
    4个字节为单精度小数,8个字节的为双精度小数;

字符

计算机是没有办法直接存储字符的,0,1;


计算机只能存放数据,所以必须要规定好数据到对应字符的映射;


数据到字符的映射,叫做编码–>将数据当做字符,然后使用这个编码对照表,翻译出来;;

  • Ascii编码:英文字符对照编码 ->一个字节就能搞定;
  • c/c++ 二进制十六进制、字符与Ascii码表
  • utf8编码:大部分的文字的编码;
  • c/c++ 二进制十六进制、字符与Ascii码表
  • 其他编码;

不是说计算机不能直接表示字符吗?那为什么printf能看到字符?

  • 把数据当成字符;
  • 计算机图形学绘制出来的;