编程思维的建立最重要的是语法和算法。
1、数据类型:
基本数据类型:整型,浮点型(显卡性能就是浮点运算),字符型
数据类型的重要性:1,方便编程解决现实问题
2,不同类型的数据可能导致最终使用的计算机硬件差异
常量和变量:
常量:在程序运行过程中,其值不能被改变的量称为常量
变量:变量代表内存中具有特定属性的一个存储单元,它用来存放数据,也就是变扭的值,
在程序运行期间,这些值是可以改变的。
整型:
int
short
long
long long
定义变量: 数据类型 变量名; // 定义变量的语法
eg: int a; //表示定义了一个整型类型的变量 名字叫a
[变量名起名规则:由数字,字母,下划线组成(不能是数字开头并且变量名是区分大小写的 变量名不能与C语言中的关键字重名)]
int a 输入之后 计算机会发生什么变化??? // 定义一个变量之后会发生什么?
当输入 int a之后 //内存 -----------在内存空间画了一个区域 并且这块区域叫a
(内存单元是以“字节”为单位编址的)
变量的初始化和赋值问题:
int a = 10; // 初始化------定义变量的同时给值
注:
变量定义好了,但是未初始化,此时变量对应的空间中是一个随机值(垃圾值)。在我的电脑里默认为0。
常量:
整型常量:
十进制形式的常量 123
八进制形式的常量 0123
十六进制形式的常量 0x123
二进制 只有 1 0
他们的转换方法十分重要;
进制转换:
十进制 到 二进制 ---- -辗转相除法
二进制 到 十进制 ----- 加权求和
十进制 到 n进制 ----- 除n取余
n进制 到 十进制 -----加权求和
八进制与二进制之间 1位八进制数 对应 3位二进制数
十六进制与二进制之间 1位十六进制数 对应 4位二进制数
数据怎么存储到计算机的?
字节序(大小端)
eg:
0x12345678 // 高位数据 低位数据
小端的规则 : 高高低低 // 高位数据放在高地址处 (地址编号大的放在高地址处)
大端: 高低低高 //高位数据放在低地址处 。。。。。。
整数 (存在计算机中存的都是补码)
正数 的补码:
原码 反码 补码 是一样的
负数 的补码:
等于 反码 + 1
eg: -123
原码: 0000 0000 I 0000 0000 I 0000 0000 I 0111 1011
反码: 符号位不变,数值位按位取反
1111 1111 1111 1111 1111 1111 1000 0100
补码:反码 +1
1 1111 1111 1111 1111 1111 1111 1000 0100
f f f f f f 8 5 (4 + 1 = 5)
int a = -123;
数据存储的规则是固定的,但是根据不同的解读方式,出现的结果也不相同
这个a = -123 可以以十进制输出 也可也以 十六进制的方式输出。
根据表示的数据是正数还是负数?
分为有符号数 signed
和无符号数 unsigned
有符号数: 最高位 0 表示 是个正数 ; 最高位1 表示还是个负数。
eg:
0 I 000 0000 I 0000 0000 I 0000 0000 I 0111 1011
符号位 I 数值位
对数字存储的总结:
整数? ------存的都是补码
正数? -------正 反 补 相同
负数? -------正 反 正常 补码为 反码+1