首页 > 其他分享 >计算机萌新的成长历程——初识C语言3

计算机萌新的成长历程——初识C语言3

时间:2023-08-21 10:37:20浏览次数:43  
标签:字节 int long C语言 初识 整型 萌新 大小 sizeof

今天我将继续分享数据类型的相关内容,本篇的主要内容将围绕short/int/long/long long——整型数据类型的区别。

在介绍他们的区别前,首先我们要先了解计算机中的单位,计算机的单位有以下几种单位:

bit——比特位,计算机中最小的单位,1个比特位只能存放一个“1”或一个“0”

byte——字节,1字节=8比特位(1byte=8bits)

kb——千字节,1千字节=1024字节(1kb=1024byte)

mb——兆字节,1兆字节=1024千字节(1mb=1024kb)

gb——千兆字节,1千兆字节=1024兆字节(1gb=1024mb)

tb——万兆字节,1万兆字节=1024千兆字节(1tb=1024gb)

pb——十万兆字节,1十万兆字节=1024万兆字节(1pb=1024tb)

...

接下来我们来运行一组代码,将不同的数据类型以整型的形式打印出来,代码如下

#include <stdio.h>
int main()
{
    printf("%d\n", sizeof(char));//sizeof——…的大小,sizeof(char)——char在计算机中所占大小
    printf("%d\n", sizeof(short));//sizeof——…的大小,sizeof(short)——short在计算机中所占大小
    printf("%d\n", sizeof(int));//sizeof——…的大小,sizeof(int)——int在计算机中所占大小
    printf("%d\n", sizeof(long));//sizeof——…的大小,sizeof(long)——long在计算机中所占大小
    printf("%d\n", sizeof(long long));//sizeof——…的大小,sizeof(long long)——long long在计算机中所占大小
    printf("%d\n", sizeof(float));//sizeof——…的大小,sizeof(float)——float在计算机中所占大小
    printf("%d\n", sizeof(double));//sizeof——…的大小,sizeof(double)——double在计算机中所占大小
    return 0;
}

打印结果如下图所示

计算机萌新的成长历程——初识C语言3_位操作

这里我们要清楚的是这些数字代表的是字节,1就是1字节,2就是2字节。根据这些信息我们可以得到的结论是在同类的数据类型中,他们之间的区别是字节的不同

short——short int——短整型,它的大小是2个字节大小;

int——整型,它的大小是4个字节大小;

long——long int——长整型,它的大小是4个字节大小;

long long——long long int——更长的整型,它的大小是8个字节大小;

float——单精度浮点型,它的大小是4个字节大小;

double——双精度浮点型,它的字节大小是8个字节大小。

这里细心的朋友就会发现int和long的大小都是4个字节,为什么一个叫整型,一个叫长整型呢?

这里同样我也存在疑惑,也查询了相关的信息,得到了以下的几点结论:

1.在早期16位操作系统中int=short int,它的大小只有2个字节大小,long int的大小是4个字节大小;

2.在后来的32位操作系统中,int也变成了4个字节大小,也就是int=long int,为了区分比int更长的字节,于是有了long long,它有8个字节大小;

3.现在的64位操作系统中,既可以编辑32位程序,也可以编辑64位程序。在32位程序中,int和long int的字节大小都是4个字节大小;在64位程序中,long int和long long都是8个字节大小。

也就是说long int在不同的程序中,它的大小也不相同。在g++中严格遵循了这个规定,但是在VC++中long int 在64位程序中的大小还是4个字节。

这些信息内容出自CSDN中的博主“疯癫小程序”的文章“int和long的区别”,有兴趣的朋友可以查看一下原文。

后面我会继续分享自己在学习C语言过程的的相关内容,感谢各位的翻阅。



标签:字节,int,long,C语言,初识,整型,萌新,大小,sizeof
From: https://blog.51cto.com/u_16231477/7171260

相关文章

  • C语言转义字符详解
    定义是以\开头的字符序列常用作用\n 换行\r  回到本行开头继续输出内容(原内容会被覆盖)\b 使光标左移一个位置\t  相当于四个空格\v 换到下一行继续输出\'  输出‘\" 输出“\ddd1~3位八进制数字,会自动转换成十进制的ascll码的对应字符\xhh 1~2......
  • C语言 笔记 1
    指针有什么用?场景A通过函数交换两个变量的值eg.交换变量a,b的值intswap(int*a,int*b){ inttemp=0; temp=*a; *a=*b; *b=temp;}场景B返回结果有多个,或return返回状态,指针返回结果intdivide(inta,intb,float*res){ intret=1; if(b!=0){ *res......
  • C语言 笔记2
    枚举常量符号化我们可以用下面代码将常量符号化constintred=0;constintyellow=1;constintblue=2;用枚举可以简写成enum=colors{red,yellow,blue};此时,red=>0,yellow=>1,blue=>2枚举枚举是一种用户定义的数据类型,他用关键词enum以如下语法来声明......
  • C语言 笔记4
    全局变量定义在函数外部的变量是全局变量。全局变量具有全局的生存期和作用域全局变量与任何函数都无关在任何函数内部都可以使用全局变量不能使用变量给全局变量初始化不初始化的全局变量默认为NULL函数内的同名变量会隐藏全局变量inta=1;{ inta=2; { in......
  • C语言 笔记3
    可变数组设计一个Array库,提供数组初始化,数组数据查看和修改的功能,且数组大小可变。array.h/*可变数组*///array_block,每次触发自动增长时增长的数量,记作一个array_block#defineARRAY_BLOCK10typedefstruct{intsize;int*array;}Array;Arrayarr......
  • C语言 笔记5
    格式化输入输出输入-printfprintf("%[flags][width][.prec][hlL]type...",参数表...);返回值输出的字符数flagFlag含义-左对齐+给一个正数强制加一个+号(space)正数留空0左边补零,不能和左对齐同时使用width和precwidth含义number......
  • 计算机萌新的成长历程——初识C语言2
    今天我将分享初识数据类型的学习体会和心得。刚刚开始接触数据类型,我学习到了以下几个数据类型char——字符数据类型short——短整型int——整型long——长整型longlong——更长的整型float——单精度浮点数double——双精度浮点数下面我将分享一下我对这些数据类型的理解。理解这......
  • C语言的缺陷/错误处理问题探讨
    最近遇到一个问题,先看看如下代码:uint8_tBcd2Dec01(uint8_tbcd){ uint8_tone=(bcd&0x0F); uint8_tten=(bcd&0xF0)>>4; if((one>9)||(ten>9)) { printf("请输入合法的BCD码!"); return0; } returnone+(ten*10);}这是一个将单字节bcd......
  • 计算机萌新的成长历程——初识C语言
    2020.8.12晚上11:00我自己正式下定决心开始学习C语言,通过公众号“枫月软件”安装了VisualStudio2019Professional,随后在B站上跟着鹏哥的教学视频正式开始接触C语言。(PS:鹏哥的B站名称是“c语言编程学习”)51CTO网站也是通过视频才知道,并按照要求注册账号编写自己的第一篇博客。我......
  • C语言基本知识要点:
    目录一.基本数据类型 1.数据类型划分 2.基本数据类型的基本知识(32位系统) (1)整型:short2字节,int4个字节,long4个字节 (2)字符型:char2个字节(一一对应ASCII码) (3)浮点型: 3.进制转换 (1)八进制转二进制 八进制数据的1位对应二进制数据的3位 (2)十六进制转二进制 4.数据在内存中的存储方......