首页 > 其他 > 详细

数据的存储

时间:2020-11-12 10:36:16      阅读:25      评论:0      收藏:0      [点我收藏+]
1.整型在内存中的存储

变量的创建是要在内存中开辟空间的,空间的大小是根据不同的类型决定的

源码,反码,补码

源码:

直接将正负数的形式翻译为二进制即可

反码:

对源码符号位不变,其他位按位取反

补码:

对反码加1

大端小端

大端:

数据的低位保存在内存的高地址中,数据的高位保存在内存的低地址中

小端:

数据的低位保存在内存的低地址中,数据的高位保存在内存的高地址中

#include <stdio.h>
int check_sys()
{
    int i = 1;
    return (*(char*)&i);
}
int main()
{
    int ret = check_sys();
    if (ret == 1)
    {
        printf("小端\n");
    }
    else
    {
        printf("大端\n");
    }
    return 0;
}

运行结果:
技术分享图片

练习:
1.字符转整型

#include <stdio.h>
int main()
{
    char a = -1;
    signed char b = -1;
    unsigned char c = -1;
    printf("a=%d,b=%d,c=%d", a, b, c);
    return 0;
}

运行结果:
技术分享图片

  1. -128

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

    技术分享图片

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

    技术分享图片

4.加法

#include<stdio.h>

int main()
{
    int i = -20;
    unsigned int j = 10;
    printf("%d\n", i + j);
    return 0;
}

技术分享图片

5.循环打印

#include<stdio.h>

int main()
{
    unsigned int i;
    for (i = 9; i >= 0; i--)
    {
        printf("%u\n", i);
    }
}

6.求字符串长度

int main()
{
 ? ?char a[1000];
 ? ?int i;
 ? ?for(i=0; i<1000; i++)
 ? {
 ? ? ? ?a[i] = -1-i;
 ? }
 ? ?printf("%d",strlen(a));
 ? ?return 0; }

技术分享图片
7.循环打印

#include <stdio.h>
unsigned char i = 0;
int main()
{
    for (i = 0; i <= 255; i++)
    {
        printf("hello world\n");
    }
    return 0;
}

2.浮点数在内存中的存储
根据国际标准IEEE(电气和电子工程协会) 754,任意一个二进制浮点数V可以表示成下面的形式:
(-1)^S M 2^E
(-1)^s表示符号位,当s=0,V为正数;当s=1,V为负数。
M表示有效数字,大于等于1,小于2
2^E表示指数位

数据的存储

原文:https://blog.51cto.com/14946385/2549472

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!