C编程下的数据类型

发布时间:2024年01月18日

想要在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。

由运算符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

问题:

文章来源:https://blog.csdn.net/qq_62902390/article/details/135617189
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。