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

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

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

文章目录
  • 前言

  • 一、原码


  • 二、反码


  • 三、补码


  • 四、浮点数的存储


  • 五、大小端存储

  • 总结


前言

随着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
int main()
{
	int i = 1;
	char j = (char) i;
	printf("%d", j);
	return 0;
}

也可以使用移位 *** 作符来判断,若输出0则为小端,否则为大端

#define _CRT_SECURE_NO_WARNINGS 1
#include

int main()
{
	int i = 1;
	int j = 0;
	j = i >> 1;
	printf("%d", j);
	return 0;
}

总结

正数的原码,反码,补码全相同,负数的反码由原码转换来(符号位不变,其余位取反),补码为反码+1。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/562654.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-02
下一篇 2022-04-02

发表评论

登录后才能评论

评论列表(0条)

保存