前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据的存储【整形提升】

数据的存储【整形提升】

作者头像
see.
发布2024-06-04 12:48:06
900
发布2024-06-04 12:48:06
举报
文章被收录于专栏:C++破军之路C++破军之路

正数的原、反、补码都相同 对于整形来说:数据存放内存中其实存放的是补码。 为什么呢 ? 在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理,同时,加法和减法也可以统一处理(CPU只有加法器)此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。

一、大端存储和小端存储

1.大端存储和小端存储的区别:

大端字节序:把数据的低位字节序放在高地址处,高位字节序的内容放在低地址处。 

小端字节序:把数据的低位字节序放在低地址处,高位字节序的内容放在高地址处。

2.如何查看自己的电脑是采用的哪种方式的存储

二、代码在内存中的存储方式练习

练习1

代码语言:javascript
复制
#include<stdio.h>
int main()
{
   int i = 0 ;
   unsigned int j = 10 ;
   printf("%d\n",i+j) ;
   return 0; 
}

解答: 

%d: 认为内存中有符号位    %u:认为内存中没有符号位

%u用来打印无符号整形

练习2

代码语言:javascript
复制
#include<stdio.h>
int main()
{
  char a = -1 ;
  signed char b=-1 ;
  unsigned char c = -1 ; 
  return 0 ;
}

解答: 

补充说明:1.char到底是signed char 还是unsigned char,C语言标准并没有规定,取决于自己的                         编译器

                   2.int是signed int   ;   short 是 signed short

练习3

代码语言:javascript
复制
#include<stdio.h>
int main()
{
	char a = -128;
	printf("%u\n", a);
	return 0;
}

解答: 

练习4 

代码语言:javascript
复制
int main()
{
	unsigned char i = 0;
	for (i = 0; i <= 255; i++)
	{
		printf("hello world\n");
	}
	return 0;
}

此处的循环条件是i<=255,而i的类型是unsigned char ,其取值范围是0~255,因此循环永远不会终止,代码陷入死循环。 

三、char类型数据的存储范围

 我们发现不论是有符号char还是无符号char,它们的区间长度相同,都是256个数字

int类型和char类型被我们归类于整形大家族,其实float家族的的存储和使用与整形大家族有很大的区别,后续的内容我还会再做补充,欢迎持续关注~

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-12-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、大端存储和小端存储
    • 1.大端存储和小端存储的区别:
      • 2.如何查看自己的电脑是采用的哪种方式的存储
      • 二、代码在内存中的存储方式练习
      • 三、char类型数据的存储范围
      相关产品与服务
      对象存储
      对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档