C/C++学习第三天——标准C基础数据类型

yang-pig| 阅读:685 发表时间:2017-07-12 23:28:00 C语言

符号数据类型需要用户自己定义

布尔类型包含2个不同的数字,一个叫真(true)另一个叫假(false)

计算机里边我们用0表示假1表示真

所有整数都可以当做布尔值使用,整数0当作布尔值使用时是假,所有其他整数当布尔值使用时都当真

不要把比尔类型作为专门的数据类型使用

数据类型和站位符之间的对应关系

char和unsigned char                   %c

short                                            %hd

unsigned short                            %hu

long                                             %ld

unsigned long                             %lu

int                                                %d

unsigned int                                 %u

float                                             %f或%g

double                                        %lf或%lg

                                                  %f和%lf会保留小数点后面多余的0

                                                  %g和%lg不会保留

sizeof关键字可以用来计算一个数据类型或者一个数字所包含的字节个数

任何可以当数字使用的内容都可以写在sizeof里

#include<stdio.h>

int main() {

        int num = 0;

        printf("sezeof(int)是:%ld\n",sizeof(int));

        printf("sizeof(num)是:%ld\n",sizeof(num));

        printf("sizeof(3+5)是%ld\n",sizeof(3+5));

        return 0;

}

char (unsigned char) 一个字节

short(unsigned short) 2个字节

int(unsigned int) 4个字节

long(unsigned long) 4个字节

float 4个字节

double 8个字节

在sizeof小括号里对任何存储区内容的修改不会真的发生

scanf标准函数可以把用户在键盘输入的数字记录在变量存储区里

为了使用这个函数,需要包含stdio.h这个文件

一定要用存储区的地址表示存储区

在双引号里使用占位符表示存储区类型

可以在一条函数调用语句里获取多个数据

不要在双引号里写不是占位符的内容

如果用户输入的数据格式和程序中希望的格式不一样可能就无法得到数字了

#include <stdio.h>

int main() {

        int num = 0,num1 = 0;

        printf("请输入两个数字:");

        scanf("%d%d",&num,&num1);

        printf("num是:%d\n",num);

        printf("num1是:%d\n",num1);

        return 0;

}

计算圆的面积:

#include <stdio.h>

int main() {

        int r = 0;

        double PI = 3.1415;

        printf("请输入圆的半径:");

        scanf("%d",&r);

        printf("半径是%d的圆的面积是:%lg\n",r,PI * r *r);

        return 0;

}

每个字节分成八段,只能用0和1

任何整数如果想记录在字节中就必须首先拆分成0或1

使用一串0或者1的方法叫做二进制,计算机里只能采用二进制方式记录数字

任何数既可以采用十进制方式表示也可以采用二进制方式表示

在数字的二进制表示中每个数位有一个编号,最右边的位数的编号是0,向左依次递增

每个数位上的1代表数字可以根据2的数位编号次方计算得到

如果两个相邻数位上的内容一样则他们代表的数字之间有倍数关系,左边数位是右边数位的2倍

用二进制表示的非负数符合上述规则

二进制加一时把最右边的所有1都变成0把最右边的0变成1

非负数的二进制转换成十进制的时候只需要把其中每个1单独转换,然后把转换结果求和

不停的对数字进行除以2的取余操作,把所有的余数安倒序书写

负数十进制转换成二进制的方法

1.首先计算出相反数

2.把第一步的结果转换成二进制

3.把第二部的结果每个数位变成相反数的内容

4.把第三部的结果做加一操作

互为相反数的二进制的表示方式,根据其中任何一个计算另一个都可以采用同样的办法

有符号位类型,最左边的二进制数位叫做符号位,

如果符号位是0就表示数字是非负数,如果符号位是1就表示是负数

负数的二进制转换十进制

1.计算出相反数的二进制

2.把第一步的结果转换成十进制

3.把第二部的计算结果再次取反

操作符用来在程序中描述对数字的处理方式

根据操作符所需要的配合使用的数字的个数把操作符分成单目操作符,双目操作符,三目操作符

C语言中使用+,-,×和/表示加减乘除四则运算符

如果参与除发计算的两个数字都是整数则结果保留整数部分

C语言里使用%号表示取余操作

赋值操作符用=表示

赋值操作符要求左边是一个能代表存储区的内容,右边是一个能代表数字的内容

赋值语句可以当做数字使用,这个数字就是赋值操作符 完成后左边存储区里的数字

可以在一条语句里使用多个操作符,先算右边的再算左边的

绝大多是双目操作符都可以和赋值操作符合并形成复合赋值操作符,例如+=,×=等

复合赋值操作符也要求左边是一个代表存储区的内容,左边是一个代表数字的内容

这个操作符首先把左右两边都当做数字,使用按照双目操作符的规则进行计算,然后计算结果存储到左边的变量里

复合赋值操作符的优先级和赋值操作符的优先级一样低

把二进制从右向左每三个数位组成一个数组,每组单独转换成十进制结果一定在0到7之间。

把所有数组的转换结果按顺序书写就得到数字的八进制表示方式

0110 1010  01 101 010  152 八进制

可以在程序中使用八进制方式表示,必须以0作为开头

采用%o做占位符可以把一个八进制整数打印出来

把二进制数字从右边向左没4位数分成一组,每组单独转换成十进制,一定在0到15之间。如果在10到15之间用英文字母a到f分别表示。

把所有转换结果按顺序书写就得到数字的十六进制表示方式

1100 1011    cb(十六进制)

可以在程序中使用十六进制表示数字,必须以0x作为开头

采用%x或%X作为占位符可以把十六进制打印在屏幕上,小写x英文字母小写,大写X英文字母大写

自增操作符(++)和自减操作符(--)都是单目操作符,他们可以把存储区里的内容做加一或者减一操作

这2个操作符必须和存储区配合使用

前操作与后操作,前操作当数字使用是修改后的数据。后操作修改前

热门推荐