欢迎光临
我们一直在努力

C语言进阶--回顾(02)

(第二篇) 

目录

 

3.底层程序设计

3.1二进制和进制转换

3.1.1二进制转十进制

3.1.2十进制转二进制

3.1.3二进制转其他进制

3.2原码,反码,补码

3.2.1有符号整数

3.2.2无符号整数

3.3大小端字节序

3.3.1大小端判断


3.底层程序设计

3.1二进制和进制转换

3.1.1二进制转十进制

3.1.2十进制转二进制

3.1.3二进制转其他进制

(a)我们知道,8=2的三次方,于是在二进制转换为八进制中,可以使用三位二进制对应一位八进制数的方式转换。例如以上1101011,可以将其三位三位拆解,在每个三位中采用正常的转换,如第一个三位111=7,第二个001=1,拼在一起就是111001=71;

(b)十六进制同理;

3.2原码,反码,补码

3.2.1有符号整数

(a)在内存中,一个int数据占四个字节,也就是32个比特位,能存32位0和1;

(b)有符号整数1位存储符号位,31位存储数据,所以最大为2的32次方-1;

如下代码:

(c)原反补码转换

3.2.2无符号整数

(a)后续的加减等计算使用的都是补码;

3.3大小端字节序

(a)由于CPU采用的是逐个读取的方式,所以必须采用按地址高低的顺序存储,便于使用时读取不失误;

3.3.1大小端判断

(a)我们知道int 类型在内存中占用4个字节,char类型占用1个字节,所以可以使用强制类型转化,这样存储的长度减少后只剩下在低地址1个字节的内容,最后if判断是否有数据即可直到是大小端;

赞(0)
未经允许不得转载:171主机测评 » C语言进阶--回顾(02)
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址