0


原码,反码,补码,大小端存储的一些理解

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 一、原码
  • 二、反码
  • 三、补码
  • 四、浮点数的存储
  • 五、大小端存储
  • 总结

前言

随着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。

标签: c语言

本文转载自: https://blog.csdn.net/lulusong3/article/details/123863257
版权归原作者 lulusong3 所有, 如有侵权,请联系我们删除。

“原码,反码,补码,大小端存储的一些理解”的评论:

还没有评论