调试结尾+数据的存储

一、编程常见的错误

1.编译型错误==语法错误

编译期间发现,容易解决。

2.链接型错误

链接期间发现,无法解析的外部符号,无法解析的外部命令。

int main()
{
   int a=20,b=10;
   int c=Add(a,b);
   printf("%d\n",c);
}

没有头文件,没定义Add函数或函数名字写错。

解决方法:找名字

3.运行时错误

借助调试解决的错误,最难。

二、数据类型介绍

unsigned signed

short=signed short

有正负存放在有符号变量中

无符号数最高位是数据位

char不知道有无符号取决于编译器

构造类型=自定义类型:

数组类型 int arr[10]->类型是int [10]

结构体类型struct

枚举类型enum

联合类型union

指针类型

void

三、整型在内存中的存储

1.原码

正数:三个码都相等

负数:符号位是1

2.反码

负数:原码符号位不变其他位依次按位取反

3.补码

负数:补码=反码+1

内存中存补码

几进制:0—几-1 10=a

1+(-1)

原码算:

1:00000000000000000000000000000001

-1:10000000000000000000000000000001

和:10000000000000000000000000000010—>-2

用原码算错了

补码算

1补码:00000000000000000000000000000001

-1:

 原码:10000000000000000000000000000001

 反码:1111111111111111111111111111111111110

 补码:1111111111111111111111111111111111111

 和:  100000000000000000000000000000000第一位丢了—>0

%u打印无符号数,不是无符号数也认为是无符号数

%d打印有符号数,不是有符号数也认为是有符号数

四、大小端字节序存储

地址:左低右高

字节:左高右低

大端字节序存储:

低位字节处的数据存放在高地址处

小端字节序存储:

低位字节处的数据存放在低地址处

char*p=(char*)&a拿出一个字节判断大小端

eg.

char a=-1

原:10000000000000000000000000000001

反:1111111111111111111111111111111111110

补:1111111111111111111111111111111111111

char 8个比特位取后8

11111111

%d打印a整型提升,有符号位补符号位,无符号补0

提升后补码:11111111111111111111111111111111

           反码:11111111111111111111111111111110

           原码:1000000000000000000000000001—>-1

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值