提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 一、原码
- 二、反码
- 三、补码
- 四、浮点数的存储
- 五、大小端存储
- 总结
前言
随着c语言的进一步学习,我们会了解到数据在计算机是如何存放的,本文就是自己对它的一些看法。
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
提示:以下是本篇文章正文内容,下面案例可供参考
一、原码
原码是一种计算机中对数字的二进制定点表示方法。原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小。
二、反码
反码是由原码符号位不变,其余位数取反(‘0’变为‘1’,‘1’变为‘0’)。
三、补码
在计算机中一般用补码来存储数据。正整数的补码是原码本身,而负数的补码是由反码+1。
四、浮点数的存取
浮点数分为一位符号位,八位指数位,剩下的为尾数位。
表示为:符号位(尾数位*2^指数位)
五、大小端 存储
在计算机存储数据时,由于编译器的不同,它存储使用的模式也就不同。
1.大端存储
大端存储就是高位放在低位置处,低位放在高位置处。
定义一个变量i等于1;int i = 1;则在大端存储中的排序为:
2.小端存储
小端存储是高位放在低位置,低位放在高位置;
定义一个变量i为0;int i = 1;则在小端存储的方式为:
3.大小端的判断
可以强制转换类型来判断,int i = 1;如果输出的是1的话则为小端,若输出为0的话就是大端。
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int i = 1;
char j = (char) i;
printf("%d", j);
return 0;
}
也可以使用移位操作符来判断,若输出0则为小端,否则为大端
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int i = 1;
int j = 0;
j = i >> 1;
printf("%d", j);
return 0;
}
总结
正数的原码,反码,补码全相同,负数的反码由原码转换来(符号位不变,其余位取反),补码为反码+1。
版权归原作者 lulusong3 所有, 如有侵权,请联系我们删除。