大/小端字节序 原码反码补码 有符号整型无符号整形 相关例题

简介: 大/小端字节序 原码反码补码 有符号整型无符号整形 相关例题
#define _CRT_SECURE_NO_WARNINGS 1 
//int main()
//{
//    int a = -10;
//    int b = 10;
//    //  a           00000000000000000000000000001010(-10原码)
//    //              11111111111111111111111111110101(-10反码)
//    //在内存中存储为11111111111111111111111111110110(-10补码)
//    //十六进制形式为FFFFFF6-----实际为6FFFFFFF(四个字节)
//    //b             00000000000000000000000000001010(10原码)
//    //              11111111111111111111111111110101(10反码)
//    //在内存中存储为11111111111111111111111111110110(10补码)
//    //十六进制形式为000000a-----实际为a0000000(四个字节)
//    return 0;
//}
//大端字节序:把数据的低位字节序的内容存放在高地址处,高位字节序的内容存放在低地址处
//如int a=0x11223344(11为高地址,44为低地址)        地址由低到高为11223344(大端正着存)
//小端字节序:把数据的高位字节序的内容存放在高地址处,低位字节序的内容存放在低地址处
//如int a=0x11223344(11为高地址,44为低地址)        地址由低到高为44332211(小端正着存)
//在计算机中,以字节为单位,每个地址单元都对应一个字节(8bit),除了8bit的char,还有16bit的short  32bit的long
//请简述大端字节序和小端字节序的概念,设计一个小程序来判断当前机器的字节序(出自百度2015年系统工程师笔试题)
#include<stdio.h>
//int main()
//{
//    int a = 1;
//    char* p = (char*) & a;//将a的二进制地址传给p,*p解引用,&a是int型,需要强制类型转换成char型
//    if (*p == 1)
//    {
//        printf("小端\n");
//    }
//    else
//    {
//        printf("大端\n");
//    }
//    return 0;
//}
//自定义函数,并用函数实现
//int check_sys()
//{
//    int a = 1;
//    char* p = (char*)&a;//将a的地址传给p并解引用,并用char类型检查第一个字节的值,需要强制转换a为p
//    //if (*p == 1)
//    //{
//    //    return 1;
//    //}
//    //else
//    //{
//    //    return 0;
//    //}
//    return*p;//返回1表示小端,返回0表示大端
//}
//int main()
//{
//    int a = 1;
//    int ret = check_sys();
//    if (ret == 1)
//    {
//        printf("小端\n");
//    }
//    else
//    {
//        printf("大端\n");
//    }
//    return 0;
//}
//输出结果是?
//#include<stdio.h>
//int main()
//{
//    char a = -1;
//    signed char b = -1;
//    unsigned char c = -1;
//    printf("a=%d\nb=%d\nc=%d\n", a, b, c);
//    //打印结果为-1 -1 255
//    //a中
//    //-1的原码为10000000000000000000000000000000001
//    //-1的反码为11111111111111111111111111111111110
//    //-1的补码为11111111111111111111111111111111111
//    //char型只能存一个字节(8个bit),11111111(高位是符号位)
//    // 整型提升(有符号位)提升补1
//    //          11111111111111111111111111111111111(-1)
//    //b中
//    //-1char型为11111111(高位是符号位)整型提升(有符号位)提升补1
//    //          11111111111111111111111111111111111(-1)
//    //c中     
//    //-1char型是11111111(高位表示符号位)
//    //无符号位整型提升补0
//    //变为      00000000000000000000000000001111111(为255,补码)(正数的原码反码补码相同,所以也是原码)
//    return 0;
//}
#include<stdio.h>
//int main()
//{
//    char a = -128;
//    //10000000000000000000000010000000(原码)
//    //11111111111111111111111101111111(反码)
//    //11111111111111111111111110000000(补码)
//    //char型,只能存1字节,8bit,即10000000(-128)(有符号char型,高位补1),补后为11111111111111111111111110000000
//    //%u是无符号整形,此时的第一位的1表示符号位,是正数,所以原码和补码相同
//    printf("%u\n", a);
//    return 0;
//}
//int main()
//{
//    char a = 128;
//    printf("%u\n", a);//
//    //00000000000000000000000010000000(128原码,原反补相同)
//    //10000000(char型取前七位),而char型为有符号型,第一位为1,为负,整型提升时,补1
//    //11111111111111111111111100000000
//    //
//    return 0;
//}
//char(有符号)在内存中类型的范围(0~127~~~~~-1~-128)
//00000000(正数)~~~~~~01111111~~~~10000000~10000001~~~~11111111(负数)的补码是(取反加一或先减一后取反两种方法)
// (定义:10000000的补码是-128)-128~~-127(11111111)~(-1)100000001
//0~127~~~~~~~~
int main()
{
    int i = -20;
    //1000000000000000000000010100(-10的原码)
    //1111111111111111111111101011(反码)
    //1111111111111111111111101100(补码)(计算机存的是补码)
    unsigned int j = 10;
    //0000000000000000000000001010(正整数的原码反码补码相同)(计算机存的是补码)
    printf("%d\n", i + j);//打印结果为-10
    //1111111111111111111111101100
    //0000000000000000000000001010
    //1111111111111111111111110110--补码(%d打印的是有符号整形的原码)------(无符号整形是遵循原数最高位为1时,全部补1,为0时全补0)
    //1111111111111111111111110101--反码
    //1000000000000000000000001010--原码 (-10)
    return 0;
}
相关文章
|
存储 传感器 芯片
电子技术的魅力与奥秘
电子技术的魅力与奥秘
|
机器学习/深度学习 数据挖掘 PyTorch
手撕VGG卷积神经网络-pytorch-详细注释版(可以直接替换自己数据集)-直接放置自己的数据集就能直接跑。跑的代码有问题的可以在评论区指出,看到了会回复。训练代码和预测代码均有。
手撕VGG卷积神经网络-pytorch-详细注释版(可以直接替换自己数据集)-直接放置自己的数据集就能直接跑。跑的代码有问题的可以在评论区指出,看到了会回复。训练代码和预测代码均有。
手撕VGG卷积神经网络-pytorch-详细注释版(可以直接替换自己数据集)-直接放置自己的数据集就能直接跑。跑的代码有问题的可以在评论区指出,看到了会回复。训练代码和预测代码均有。
|
运维 监控 数据处理
使用Python开发员工微信监管软件的基础框架
在企业管理中,员工微信使用的监管成为一项重要的任务。为了实现高效的监管,我们可以利用Python语言开发一套基础框架,用于员工微信监管软件的开发。本文将介绍这个基础框架,并提供一些代码示例,以帮助读者理解如何构建这样的监管系统。
311 0
|
弹性计算 关系型数据库 MySQL
续费任务
我目前是一名在校就读的大二信工系学生,我的专业是云计算,本身就对于计算机有着一定的兴趣,加上对于专业课的学习,通过阿里云此次推出的 飞天加速计划使得我了解到了相关领域的知识。
|
2天前
|
存储 关系型数据库 分布式数据库
PostgreSQL 18 发布,快来 PolarDB 尝鲜!
PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!
|
13天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1292 5
|
12天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1319 87