C 碎片一 计算机知识
一、计算机知识
1, 计算机组成及工作原理
计算机是硬件和软件的结合体。硬件由主机箱和外部设备组成,主机主要包括CPU、内存、主板、硬盘、光驱、各种扩展卡、连接线、电源等;外部设备包括鼠标、键盘等。软件包括程序、数据和文档,是用户与硬件之间的接口
2, 计算机语言
计算机语言是计算机能够识别的语言,用于人与计算机进行沟通和交流。
发展:机器语言 ——> 汇编语言 ——> 高级语言(C,C++,OC,JAVA)
3, 程序
程序是可以完成特定功能,多条指挥计算机进行操作指令序列的集合
程序本质:就是一堆数据和指令,加载到计算机可以进行各种操作
4, 计算机只能够识别二进制数据,why?
1, 硬件设计简单,成本低
2, 稳定性高
3, 符合生活中的(真假,是非)逻辑
5, 进制
进位制,一种人们约定的进位方式,对于任何一种X进制,某个进制位上的值逢X进一
二、进制转换
1, 十进制:基数 0~9 ,逢十进一
123=1*10^2 + 2 *10^1+3*10^0
2, 二进制:基数 0,1 ,逢二进一
十进制转二进制 :除2取余,倒序书写
52 = 110100(b)
250 = 11111010(b)
3, 八进制:基数 0~7 ,逢八进一
八进制转十进制:
034 = 3*8^1+4*8^0=28
八进制转二进制:八进制一位表示3位二进制数
034 = 011 100
二进制转八进制:
10101010(b) = 0252
4, 十六进制:基数 0~9, A~F,逢十六进一
十六进制转十进制:
0xFE34 = 15*16^3 +15*16^2+3*16^1+4*16^0
十六进制转二进制:十六进制1位表示4位二进制数
0xFE34 =1111 1110 0011 0100(b)
二进制转十六进制:
11101111101010(b)= 0x3BEA
程序中的数据不是以二进制存储而是以十六进制存储,Why?
1,书写比二进制简短
2,与二进制转换方便
3,C语言不支持二进制的书写形式,程序中的数据无论是以哪种形式书写的,最终都是以二进制的形式存储的
三、数据及储存
正数的原码,反码和补码都是其本身
负数的反码:对应的原码符号位不变,其余位取反
负数的补码:对应的反码加1
程序中的数据最终是以补码的形式存储的, why?
1,将减法转换为加法运算,简化硬件设计,节约成本
2,将符号位参与运算,无需单独考虑,也可简化设计
程序中的数据储存在哪里:存储在内存中,我们人为的约定8个bit为一个字节占用一个存储单元,然后使用一个正整数给这些单元进行编号,实际上我们不使用地址编号, why?
1,地址书写较麻烦,易出错
2,实际我们不知道哪些地址是可用的
3,我们可以给某存储 空间取个名字,然后通过这个名字访问指定的存储空间