计算机编程的基础小知识

文章介绍了编程语言的基本概念,包括C语言等常见类型,以及源代码和语法的定义。此外,详细阐述了进制系统,如二进制、八进制和十六进制的运算及转换。还提到了数据在计算机中的存储形式,尤其是内存和字符编码,如ASCII编码及其在C语言中的应用。
摘要由CSDN通过智能技术生成

编程基础小知识

一、编程语言

编程语言:可以通过”语言“来控制计算机,让计算机为我们做事情的语言

编程语言有很多种,常用的有C语言、C++JavaC#PythonPHPJavaScript、Go语言、Objective-C、Swift、汇编语言等,每种语言都有自己擅长的方面。编程语言是用来控制计算机的一系列指令(Instruction),它有固定的格式和词汇(不同编程语言的格式和词汇不一样),必须遵守,否则就会出错,达不到我们的目的。

源代码:具有特定含义的词汇、语句,按照特定的格式组织在一起,就构成了源代码(Source Code),也称源码或代码(Code)。

语法:C语言肯定规定了源代码中每个词汇、语句的含义,也规定了它们该如何组织在一起,这就是语法(Syntax)

编程:编写源代码的过程就叫做编程(Program)

二、进制

进制:也就是进位制。进行加法运算时逢X进一(满X进一),进行减法运算时借一当X,这就是X进制,这种进制也就包含X个数字,基数为X。十进制有 0~9 共10个数字,基数为10,在加减法运算中,逢十进一,借一当十。

进制运算:进制加减法和十进制加减法的思想是类似的,例如:对于十进制,进行加法运算时逢十进一,进行减法运算时借一当十;对于二进制,进行加法运算时逢二进一,进行减法运算时借一当二。

二进制:用0、1两个数字来表示数值,这就是二进制(Binary

八进制:八进制有 0~7 共8个数字,基数为8,加法运算时逢八进一,减法运算时借一当八

十六进制:十六进制中,用A来表示10,B表示11,C表示12,D表示13,E表示14,F表示15,因此有 0~F 共16个数字,基数为16,加法运算时逢16进1,减法运算时借1当16。

进制转换

  1. 二进制转为十进制

    101.1001 = 1×22 + 0×21 + 1×20 + 1×2-1 + 0×2-2 + 0×2-3 + 1×2-4 = 4 + 0 + 1 + 0.5 + 0 + 0 + 0.0625 = 5.5625
  2. 十进制转为二进制

    • 整数

    • 小数

  3. 二进制整数和八进制整数之间的转换

    二进制整数转换为八进制整数时,每三位二进制数字转换为一位八进制数字,运算的顺序是从低位向高位依次进行,高位不足三位用零补齐。
    1110111100 转换为八进制的结果为 1674
  4. 二进制整数和十六进制整数之间的转换

    二进制整数转换为十六进制整数时,每四位二进制数字转换为一位十六进制数字,运算的顺序是从低位向高位依次进行,高位不足四位用零补齐。
    10 1101 0101 1100 转换为十六进制的结果为 2D5C。

三、数据存储

计算机要处理的信息是多种多样的,如数字、文字、符号、图形、音频、视频等,这些信息在人们的眼里是不同的。但对于计算机来说,它们在内存中都是一样的,都是以二进制的形式来表示

内存条中一个元器件称为1Bit(位),大数据处理时可能会用到PB和EB

1Byte = 8 Bit
1KB = 1024Byte = 210Byte
1MB = 1024KB = 220Byte
1GB = 1024MB = 230Byte
1TB = 1024GB = 240Byte
1PB = 1024TB = 250Byte
1EB = 1024PB = 260Byte

程序的运行实际上就是数据(程序本质就是数据的集合),通过加载器(loader)从硬盘加载到内存中运行

内存>固态硬盘>机械硬盘

虚拟内存:当运行的程序所需空间超过内存时,操作系统解决这个问题,将暂时不用的数据写回硬盘,需要时再写回来。硬盘中存放内存中暂时不用的数据的空间就是虚拟内存。

四、字符编码

字符集:定义了文字和二进制的对应关系,为字符分配了唯一的编号

字符编码:规定了如何将文字的编号存储到计算机中。

ASCII编码:美国人发明的字符编码,标准版本于 1967 年第一次发布,最后一次更新则是在 1986 年,迄今为止共收录了 128 个字符,其中包含了 33 个控制字符(具有某些特殊功能但是无法显示的字符)和 95 个可显示字符。包含了基本的拉丁字母(英文字母)、阿拉伯数字(也就是 1234567890)、标点符号(,.!等)、特殊符号(@#$%^&等)以及一些具有控制功能的字符(往往不会显示出来)。

很多人可能认为C语言使用的就是 ASCII 编码,字符在存储时会转换成对应的 ASCII 码值,在读取时也是根据 ASCII 码找到对应的字符。这句话是错误的,C语言有时候使用 ASCII 编码,有时候却不是。

C语言并不总是使用ASCII编码。在C语言中,字符常量被编码为整数值,这些整数值在不同的实现中可能有所不同。
在许多系统中,包括大多数现代系统,C语言使用ASCII编码来表示字符。ASCII编码使用7位二进制数来表示128个字符,包括英文字母、数字和特殊字符。
然而,C语言标准并没有明确规定要使用ASCII编码。根据C语言标准,字符集的选择是实现定义的。因此,不同的编译器和系统可以选择不同的字符集和编码方式。
例如,一些特定的系统可能使用扩展的ASCII编码,如ISO-8859或Windows-1252。还有一些系统使用Unicode编码或其他多字节编码方案,如UTF-8或UTF-16。
因此,在编写C程序时,应该尽量避免假设字符编码为ASCII,并且最好使用与具体实现相关的字符操作函数,例如isalpha()和isdigit(),而不是对具体的ASCII值进行硬编码比较。
总之,虽然在很多系统中C语言使用ASCII编码,但它并不是C语言的唯一字符编码方式,具体的字符集和编码取决于编译器和系统的实现。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值