栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

字节的存储与计算

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

字节的存储与计算

字节的存储与计算
int main()
{
    unsigned char a = 200;
    unsigned char b = 100;
    unsigned char c = 0;
    c = a + b;
    printf("%d %d",a + b,c);
    return 0;
}

char a =200;
200/ 2 8 256 0
200    7 128 1
72     6 64  1
8      5 32  0
8      4 16  0
8      3  8  1
       2  4  0
     2^1  2  0
     2^0  1  0
     
     000100110
              11001000
              
100  64  1  6
36   32  1    5
4     4  1  2

0110 0100
0000 0000
c = 1100 1000 + 0110 0100
c = 1 0010 1100
2^8+2^5+2^3+2^2 = 
256 + 44 = 300

数据在内存中的存储
#include
int main()
{
    int a = 1;
    int b = -2;
    return 0;
}
反码:原码除符号位,按位取反。补码等于反码加一。

原码:0001
反码:1110
补码:1111

1000 0000 0000 0010
1111 1111 1111 1101
1111 1111 1111 1110
二进制转十六进制

1111 1111 1111 1111 1111 1111 1111 1110
ff ff ff fc

大端和小端字节序
地址从上至下生长
小端字节序,数据的地位保存在内存的地址中

unsigned int a = 0x1234;
unsigned char b = *(unsigned char*)&a;

在32位大端模式处理器上变量b等于
大端序中,低地址到高地址的四字节十六进制排列为00 00 12 34,其中第一个字节的内容为00

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


10 00 00 01

1024
512 2^9
2^10-24
24 2^4+2^3
1 0000
1000

24
0001 1000

0100 0000 0000
0000 0001 1000
0011 1110 1000

1000 0011 1110 1000
a是字符型数组,strlen找的是第一次出现尾零的位置。

整形来说,数据存放内存中存放的是补码。但是对于浮点型来说,在内存中存放的是否也是补码呢
浮点型在内存中的存储
float double long double类型

例子:
int main()
{
    int n = 9;
    float *pfloat = (float*)&n;
    
}

字符函数:
strlen()、strcpy()、strcat()、strcmp()、strsrt()、memcpy、memmove、
自实现:


自定义类型:结构体,枚举,联合
 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/312395.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号