码迷,mamicode.com
首页 > 编程语言 > 详细

c语言进阶day_01

时间:2018-04-19 01:51:29      阅读:244      评论:0      收藏:0      [点我收藏+]

标签:个数   表示   正数   unsigned   机器   第一个   under   数据丢失   问题   

 

 

 

数据类型

1.1内存

内存是线性的,按照字节为单位进行编址的(8b)

 

1.2补码

技术分享图片

补码特点(互逆):

0的补码是0

符号位同普通位一起参与运算

补码可以使加减乘除都变成加法

8位数据(【-128,127】)表示的范围是由补码的编码规则决定的

技术分享图片

注意:-1(1111 1111) -128(1000 0000) 127(0111 1111)

 

1.3数据类型划分

技术分享图片

Char  0-128  对应ascii表

 

为什么需要数据类型?

数据类型提供了申请内存单元的大小和访问规则。

 

1.4类型转换

1.4.1小数据赋给大数据

技术分享图片

 

底端对齐/符号自动填充

正数扩充0/负数扩充1

技术分享图片

1.4.2大数据赋给小数据

技术分享图片

技术分享图片

int a=127;

char b=a;

a=b=127;

 

int a=255;

char b=a;

a=255;b=ffffffff;

以上没有发生数据丢失,仅仅截断

技术分享图片

技术分享图片

1.4.3隐式转化

整形提升:在32位机器中,所有低于32位的整形数据——>32位整形数据。

混合提升:

技术分享图片

技术分享图片

补码+类型转化+符号填充

Unsigned int填充0000

 

科普下补码运算:

正数的补码:与原码相同

负数的补码:符号位为1,其余位为该数绝对值的原码按位取反;然后整个数加1。

补码相减:

减法: 
整数: [A-B]补 = [A]补 + [-B]补 (mod 2^(n+1)) 
小数: [A-B]补 = [A]补 + [-B]补(mod 2) 

由[-B]补求解[B]补,或者由[B]补求[-B]补,都是连同符号位每位求反加一。

 

1.5内存管理

技术分享图片

 

命令行参数

Int main(int argc(输入数据个数)四个字节,char * argv[](输入数据)12个字节)

技术分享图片

1.6数组

数组清零:int array【10】={0};——>第一个数据设为0,后面自动初始化为0

 

 

当然数组以及二维数组,指针数组还有许多问题,希望大家可以多多交流!!!

下周学习,更c语言提高day_02  谢谢(*^_^*)

 

c语言进阶day_01

标签:个数   表示   正数   unsigned   机器   第一个   under   数据丢失   问题   

原文地址:https://www.cnblogs.com/Whgy/p/8878879.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!