C语言学习日记1

编程思维的建立最重要的是语法和算法。

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
 

  • 23
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值