C数据类型、常量、进制转换

一、数据类型(在32位操作系统上)

  1、基本数据类型(有符号的字符:最高位为1代表负数 为0代表正数)
   (1) 字符类型:char(一个字节), signed char(有符号字符类型), unsigned char(无符号字符类型)
   (2) 整形:
      短整型:short 或 short int(2个字节)
          signed short
          unsigned short
      整形:int (4字节)
      长整型:long 或long int(4字节)
      长长整型:long long 或者long long int (8字节)
   (3)实型:(浮点类型)
      float 单精度的浮点类型 (4字节)
      double 双精度的浮点类型(8字节)
      long double (12个字节)
   (4) 枚举类型:enum
  2、构造类型
      数组:char buf[2]
      结构体:struct
      共用体:union
  3、指针类型(都是4字节)
      char  *
      int  *
      long  *
      void * ---------->万能指针
  4、空类型:void(不占用字节)

二、常量

  (1)字符类型常量: char
     单引号引起来的,它代表的是字符,是个常量(对应ASCII码表)(使用指令:man ascii 命令可以查看ASCII码表)
     注意:字符常量只能赋值给字符类型
      '\n'  ‘a’   'A'   't'
      10     97     65   116
  (2)整形常量:short   int   long
      1    39    0   -3    -4
  (3)实型常量(浮点):
      3.14   2.85   2.12e-1   0.231E2
      168E2(或者168E+2)=168 *10(2次方)
      168E-2=168 *10(-2次方)

    注意:浮点类型的数据不能直接使用“==”来比较大小,我们可以使用范围精度来比较大小:
        例如:写一个float x 与“0”比较的if语句:

点击查看代码
const  float Accuracy = 0.00001;
if ((x >= -Accuracy) && (x <= Accuracy)){
    printf("x = 0\n");
}
  (4)字符串常量:用双引号括起来的。(注:在C语言中,没有字符串类型)

      “hainfa”,“ahfaoi”

  (5)标识常量(宏)

三、进制转换:

   二进制:逢二进一(0b是二进制的开头)----------->二进制转换成十进制可以使用8421码进行转换。
       0b110110 = 转换为10进制 = 1 *2^5 + 1 *...........

   十进制:逢十进一
       65 = 0b100 0001
       50 = 0b0011 0010
       12= 0b1100
       0001=1
       0010=2
       0100=4
       1000=8

   八进制:逢八进一(0是八进制的开头)
       0664 = 6 *8^2 + 6 *8^1 + 4 *8^0 =436
                        =0b110 110 110
       0775 = 0b111 111 101

    注:八进制中的一位转化成二进制对应的是三位

   十六进制:逢十六进一(0x代表十六进制)
       0 1 2 3 4 。。。。。。 9 a b ..... f
       0xa38f = 0b1010 0011 1000 1111

    注:十六进制中的一位转化成二进制对应的是四位

posted @ 2022-06-20 15:38  皆为过客  阅读(110)  评论(0)    收藏  举报