目录
引言:为什么刚入门C语言要学习计算机的相关知识呢?
我相信这是很多小白的疑问,在学习C语言时我们总是感觉前面学习的知识与后面的编码知识联系不是很大,然而,我们要知道,计算机是计算机,我们是我们,C语言是我们与计算机交流的途径,比如我们试图和猫猫狗狗交流的时候,最起码使用语言的方式是不一样的,这就是了解他,知道这个交流对象最基础的概念,在C语言学习中也是,我们首先要了解这个交流对象——计算机,才能更好的使用C语言与之交流,并且更轻松的让计算机帮我们做事。
一、计算机的存储单位
1.bit比特
计算机是以二进制进行存储、发送和接受数据的,二进制表示为0和1的组合,而比特我们通常叫做位, 一位(1bit)就是二进制数中的一个数位,即0或1。
2.byte字节
字节,也就是B,英文字符通常是一个字节,中文字符通常为两个字节,字节与位的换算关系为:1字节=8位
3.一些常见的转换关系
1B=8b
1KB=1024B
1MB=1024KB
1GB=1024MB
1TB=1024GB
为什么这个数字是1024不是别的?
因为在计算机中,普遍使用的是二进制,而2^10=1024,因此我们把1024当做一个基数,比如我们常见的十进制中把10当做基数,一千=10*一百……
二、计算机数据表示形式
1.数值型数据
(1)几种类型
二进制(B)0 1
八进制(O)0~7 以0开头
十进制(D)0~9
十六进制(H)0~9 A~F 以0x开头
(2)进制转换
二转八与八转二:直接划分三位为一组,利用8421的基本规则将数制转换
二转十六与十六转二:划分四位为一组进行转换
二转十:系数乘二的次方,我们按详细例子说明
十转二:较小的可以直接看出来,很大的用计算器,我们只说中间部分的,利用短除法
2.C中的非数值型数据
这里我所使用的软件是Linux操作系统中的vscode与终端
(1)可以利用man手册查看一些命令、函数的格式,以此获得一些非数值型数据的取值,例如在终端使用man手册查看ASCII码表---使用方法:man+ascii
(2)ASCII码表一些重要的字符(可据此延申'1''B''b'……)
字符 | 十进制大小 | 含义 |
---|---|---|
'\0' | 0 | 字符串结束标志 |
'\n' | 10 | 换行 |
space | 32 | 空格 |
'0' | 48 | 字符'0' |
'A' | 65 | |
'a' | 97 |
(3)在使用非数值数据进行运算时注意辨别字符大小
eg:'2' - 48 = ?
'2' = 50 , 则答案为数字2
eg:'A' + 32 = 'a'