unsighed和sighed的区别、

这里都用short来打比方

unsighed表示无符号,sighed表示有符号。
在数据储存中,最高位表示符号位

不知道第二个-32767怎么来的,后面会有讲到

根据上面的图片可以得出,有符号和无符号的差别的是很大的,有时候一个小的差错就会导致完全不一样的结果

总结:如果是有符号数就可以放到short(sighed short)里面
如果是无符号数就可以放到unsighed short里面(因为取值范围会比对应的有符号数会变大)

整形家族

以下是上课截的图片

原码,反码和补码

前面一个文章已经详细的解释道了,这里就不过多解释

大小端字节序储存

概念

大端字节序储存

数据的高字节(大端)保存到内存的低地址,数据的低字节保存到内存的高地址

小端字节序储存

数据的低字节(小端)保存到内存的低地址,数据的高字节保存到内存的高地址

例子

用0x12563478

练习(关于整数在内存中的储存)

1.以下代码运行结果是多少

#include <stdio.h>
int main()
{char a = -128;printf("%u\n",a);return 0;
}


步骤就是从鲜红框到暗红框,相信不需要太多的解释,只有一个就是%u表示的是以无符号整数打印。
图片的最后一行不需要转换为补码,因为%u形式输出就会认为是正数。

总结:整形提升提升的是变量本身的变量类型,而不是看打印的方式
比如上面的a,本身类型是char(有符号类型),所以就按有符号位来输出(1),
而不是因为是%u形式打印,所以就以无符号位输出,全部补0

2.以下程序运行结果是多少

#include <stdio.h>
int main()
{int i = 0;unsigned int j = 0;printf("%d\n",i + j);
}


步骤同样是鲜红框,蓝框和暗红框,值得一提的就是因为以%d形式打印,表示的是有符号数打印,
所以就要转换为原码

总结:如果是有符号数打印的话(%d),那么就需要将补码转换为原码

3.以下程序的运行结果是多少

#include <stdio.h>
int main()
{unsigned int i;for(i = 9; i >= 0; i--){printf("%u\n",i);}
}

步骤如下面图片所示

所以打印的结果就是从9~0,再从4294967295到0,然后又到4294967295到0,一直循环上面的操作

  1. 以下程序的运行结果是多少
#include <stdio.h>
int main()
{char a[1000];int i;for (i = 0; i < 1000; i++){a[i] = -1 - i;}printf("%d",strlen(a));return 0;
}

相信读者可能看到或者刷过这种题目,答案就是255
题目解决的关键点就是strlen是求字符串长度的
而计算原理是:
找到’\0’,并计算’\0’前面的所有字符数再输出


步骤是从左到右,总之就是细心细心再细心就完了

浮点数在内存中的储存

浮点数怎么转化为能储存的数字

根据国际标准IEEE(电气和电子工程协会)754,任意一个二进制浮点数v都可以表示成下面的形式
(也是上课截的图片)

举个例子
5.5

  1. 先把5.5转换为二进制数字,先转换小数点前面的,
    5—101
    再转换小数点后面的
    0.5—2*2^(-1)—.1

因为如果是十进制数(就以上面的5.5为例)
5.5 = 5 * 10^1 + 5 * 10^(-1)
所以小数点后面第一位就表示“进制数^(-1)”

所以5.5转换为二进制就是101.1

  1. 把二进制数转换为有效数字M,同时找到E
    就是把上面的转换为1.011 * 2^2
    这里的1.011就是M
    这里的2就表示E(是^后面的2)

  2. 最后一个S就看符号位就行
    0表示正数,1表示负数

浮点数是如何被存放到内存中的

浮点数储存到内存中只需要S,M和E这三个值

浮点数在内存中的储存情况如上所示

这里对浮点数的一些特殊情况不做阐述,本人没有对这些内容进行深入研究

C语言数据储存(保姆级教学)相关推荐

  1. 数据定义语言DDL(保姆级教学)

    目录 DDL: 1.数据库的创建: 2.由于重复创建同名数据库会报错 3.注意如果默认字符集为Latin1,其不支持中文,所以改为: 数据库的创建: 数据表的创建 属性的数据类型 1.数值类型: 2. ...

  2. Fortran保姆级教学——考试所有知识点看这一篇就够了

    Fortran保姆级教学--考试所有知识点看这一篇就够了 临近期末本人复习的同时将整个fortran课堂知识整理了下来,希望学弟学妹们今后学这门课的时候不至于在csdn找不到系统的教程,也希望能帮到需 ...

  3. Java EE系列(九)——Java EE连接Mysql数据库(JDBC保姆级教学)

    最近几天,peter xiao所在的项目小组也逐渐开始进行做最后的Java web课程大作业了,我们组所做的是运动会报名服务系统,其中涉及到很多数据的增删查改,所以需要依靠Mysql数据库来解决这些问 ...

  4. 保姆级教学——集群环境搭建及创建集群

    保姆级教学--集群环境搭建及创建集群 新建虚拟机 一些默认,加载镜像开启虚拟机,在安装位置选择自己目录,然后建立分区,首先添加 挂载点,类型标准分区,文件系统ext4 加载分区,期望给2G, 类型标准 ...

  5. 【量化回测必看!】Backtrader保姆级教学+免费行情源 SMA策略

    前言 想开始量化学习不知道如何入手?市面上的学习资料太多不知道该怎么看? 博主将从零基础讲解回测框架,一步步完成量化数据源的搭建,让你10天内成为量化高手 博主同时将视频课程内容在B站更新,可以关注& ...

  6. 英伟达的Nerf:instant_ngp在Windows10下的配置和使用--保姆级教学

    英伟达的Nerf:instant_ngp在Windows10下的配置和使用–保姆级教学 1.前言 Nerf的原理和厉害之处在这里就不做详细介绍了,本文主要是针对小白在Windows10环境下配置ins ...

  7. 手把手教你使用Hugo搭建个人博客网站|保姆级教学

    搭建个人博客网上目前用的比较多的博客框架是Hexo.Hugo.Jekyll.本文详细介绍利用最新的Hugo(基于Go语言的博客框架)在windows上搭建个人博客网站,从域名注册到后期维护,全程保姆级 ...

  8. 「保姆级教学」入门级java程序——薪资转换器

    往期「保姆级教学」目录 「保姆级教学」iOS下JDK环境配置 文章目录 往期「保姆级教学」目录 前言 第二日任务 1.java基础语法 2.掌握java基本输入输出 3.掌握java基本数据类型和变量 ...

  9. GOES-16数据下载(保姆级教程)

    GOES-16数据下载(保姆级教程) 先上GOES-16数据下载的网址link 1.先进入上述网址,下拉选项可以选择想要下载的数据,这里我选择的是辐亮度数据. 2.选择想要的数据的日期,最多只能选择3 ...

最新文章

  1. (以pytorch为例)路径(深度)的正则化方法的简单理解-drop path
  2. 启动ServerManager
  3. pythoncsv数据怎么读_python如何读写csv数据
  4. 【AGC035C】Skolem XOR Tree【异或】【构造】
  5. delphi中保留字的属性和含义
  6. SQL-必知必会-触发器
  7. 【ElasticSearch】Es 源码之 NetworkModule 源码解读
  8. python爬虫的用途_python爬虫用代理ip有什么用途?
  9. 2021年2月移动互联网全行业排行榜
  10. GBK编码/GBK内码/Big5
  11. 如何使用 RootFS 功能删除 Odyssey 越狱
  12. 华硕k43tk拆机清灰教程
  13. 从零开始的ZYNQ学习(基于矿卡EBAZ4205)(二)
  14. 深入理解PHP原理之PHP与WEB服务器交互
  15. zcmu--1931: wjw的剪纸(dfs+枚举)
  16. xp计算机u盘重装系统,机械师电脑u盘重装系统xp教程
  17. 如何怎样在M1芯片Mac上安装PS?M1芯片安装Photoshop详细教学方法2021最新方法
  18. 皮卡丘(pikachu)不安全的文件下载
  19. 字节(b)转换为千字节(kb)和兆(mb)的转换方法
  20. 电商平台-搜索模块的设计与架构

热门文章

  1. 跨境电商前景 跨境电商运营前景待遇
  2. 绘制三维多面体 Matlab,已知一些随机的三维坐标点,怎么用matlab把这些点绘制成多面体,急求程序代码啊...
  3. 2023中国数据安全发展趋势十大预测
  4. 临床试验中lm是什么职位_除了CRX职位,临床试验中还有这些岗位
  5. 【asp.net core 系列】5 布局页和静态资源
  6. EXCEL工资表一键转化工资条短信如何操作
  7. 超高速定位文件,电脑必备软件
  8. 开脑洞:数字文明的等级
  9. New York Comic Con 2013 - 2013年纽约动漫展
  10. 磁力搜 For magnetW常见问题