C编程下的数据类型

想要在linux下实现更灵活高效的编程就必须了解vim的一些便捷操作:

vim编译场景下的复制、粘贴、删除、剪切等操作均在命令模式下进行。

复制        4yy        //复制光标所在以及下行总共4行进行复制

粘贴        p/4p        //粘贴操作     粘贴4行

删除        dd           //删除光标所在的行

剪切        dd p        //剪切操作是删除和粘贴的组合

选中       shift  v     //按住方向键实现选择行,之后按y实现多行选择

              ctrl  v       //实现块选择

撤销        u             //返回至上一步操作

反撤销     ctrl r        //撤回撤销命令

注释代码其他方式

#if 0        //用的话将0改为1就可以#if 1

#endif

标识符的命名方式:数字、字母、下划线(不能是数字开头)


计算机中有许多数据类型,但是主要可以分为两类:int【整型】、float【浮点型】。char【字符型】可以认为是整型的一种其实质也是整型。

基于以上两种数据类型为了适用更多的应用场景,则对其进行了扩充:short、long、long long。

C编程下的数据类型_第1张图片

由运算符sizeof可以查看出各个数据类型所占的字节数。一个字节=8位(8比特)

计算机存储码数的规则是:补码为了便于进行减运算,即用加代替减。

大端模式、小端模式

大端模式和小端模式指的是计算机存储数据的方式。

大端模式将高位存储到低位寄存器中;小端模式将高位存储到高位寄存器中。

例如:寄存器地址分别为0x01\0x02。要存储一个数据1110 1111如果将1110存入0x02寄存器中,1111存入0x01寄存器中,这种存储方式则为小端模式(简记:高高低低)。

如果将1110存储至0x01,1111存储至0x02则为大端模式(简记:高低低高)。

int 类型

unsigned int        //2^(4*8)即存储范围在0 ~ 2^32-1(无符号具体后面介绍)

int                       //默认为signed int 类型存储范围为-2^31 ~ 2^31-1

unsigned short        // 2^(2*8)存储范围在0 ~ 2^8-1

数据类型如果超过最大表示范围则会发生溢出。明确存储范围则可排除一些问题,例如:

举例程序:

unsigned short i = 0;

for (i = 0;  i <= 65536; ++i)
{
	printf("i = %d\n",i);
}

该程序永远处于循环当中无法结束程序,其原因在于short型所能表达的最大整数范围是65536-1;因此i的取值永远不会大于65536,无法跳出for循环当中。

float类型 

计算方式是将6.25化成二进制科学计数法1.1001 * 2^2

存储规则:符号位(1位) | 指数位(8位)+127 | 尾数(23位)

例如:6.25的存储方式为 0 / 100 0000 1/ 10 0 1000 0000 0000 0000 0000

double型的对float的扩充

int main()
{
    float a = 0.9;
    if(a == 0.9)
    {printf("yes");}
    else
    {
        printf("no");
    }
    printf("%f\n",a);
}

浮点数一般默认以双精度double形式存储,以上代码运行结果为NO的原因在于0.9与a的存储方式不同,计算机并不能存一个确定的0.9,只能是近似于。因此尾数越多则精度越高。

占位符

%d \ %ld 、 %ud 十进制输出占位符
%o \ %#o 八进制输出占位符 \ 输出带前缀0 12
%x \ %#x 十六进制输出符 \ 输出前缀带0x
%c 输出字符型

总结:

vim编辑器

数据类型:int(short、long、long long)、float(double、long double)、char

计算机存储二进制数规则:补码(为了便于进行减运算)

数据类型的存储范围、溢出、存储方式


最后分享一个编程题:

将小写的hello转变为HELLO

C编程下的数据类型_第2张图片

问题:

C编程下的数据类型_第3张图片

C编程下的数据类型_第4张图片

你可能感兴趣的:(学习,c语言)