linux学习-3-C语言数据类型 -1

目录

基本的数据类型:

进制转换

语法

数据存储

结论


不同类型的数据-----机器指令不同--导致最终使用硬件的部件不同

#if 0

#endif   (用中间的一段代码,就写1不用就写0)

基本的数据类型:

1,整型: int,short ,long ,long long  大小不一     

     浮点型:

     字符型:

2,在程序运行的过程中值能被改变的量叫变量,不能被改变的量叫常量。

进制转换

十进制转二进制

上面的是地位,下面的是高位

二进制转十进制

加权求和或 BCD码

比如1010对应2*3,2*2,2*1,2*0

8421

1010

只有二位和四位有一所以十进制数值为相加为10

十六进制转二级制

一位十六进制数等于四位二进制数

相互换还是用上面两种方法

八进制转二级制

一位八进制数等于三位二进制数

相互换还是用上面两种方法

语法

int a =10;//这是初始化,开空间的同时给了一个值

int a; 

a =10;//这是赋值,先开空间,再给十

数据存储

大端存储,

小端存储 :高高低低  高位数据存高地址,低位数据存低地址

负数存储:补码存储  

例如:int a =-123;

在存储中数据的最高位  充当符号位

0为正,1为负数

符号位|----数值位

0|000 0000 0000 0000 0000 0000 0111 1011 //+123

1|000 0000 0000 0000 0000 0000 0111 1011 //-123

补码:

源码:两次补码也是原码

1|000 0000 0000 0000 0000 0000 0111 1011 //-123

反码:符号位不变,其余位按位取反

1|111 1111 1111 1111 1111 1111 1000 0100 //-123

补码:反码+1

1|111 1111 1111 1111 1111 1111 1000 0101 //-123

f            f       f        f      f       f        8        5

按照小端储存,所以-123在计算机中储存为85ffffff

signed(有符号位):有一位为符号位(包含正数和负数)

signed int 

0000 0000 0000 0000 0000 0000 0000 0000//最小值

1111 1111 1111 1111 1111 1111 1111 1111 //最大值

unsigned(无符号位):不包含符号位(包含非负数)

unsigned int 

正数

0|000 0000 0000 0000 0000 0000 0000 0000  //最小值

0|111 1111 1111 1111 1111 1111 1111 1111  //最大值

负数(这里的十六进制都是编译器中存入的数字属于补码,要求出具体值需要算出源码)

1|000 0000 0000 0000 0000 0000 0000 0000// 最小值(这个符号位的1即是符号位,也是数值位)

1|111 1111 1111 1111 1111 1111 1111 1111 //最大值(-1)

结论

整数在计算机中存储的都是补码形式

正数:原码,反码,补码都是一样的;

负数:如上的求法;

整型溢出:当数值大于存储数据的最大值时,再增加数值就会变为最小值,反之最小再减一也会溢出

        例如:1111 1111 1111 1111的最大字符  再加一就会变为  1 0000 0000 0000 0000不能存储1全是0

  • 15
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值