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

简介: 大/小端字节序 原码反码补码 有符号整型无符号整形 相关例题
#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语言开发一套基础框架,用于员工微信监管软件的开发。本文将介绍这个基础框架,并提供一些代码示例,以帮助读者理解如何构建这样的监管系统。
325 0
|
弹性计算 关系型数据库 MySQL
续费任务
我目前是一名在校就读的大二信工系学生,我的专业是云计算,本身就对于计算机有着一定的兴趣,加上对于专业课的学习,通过阿里云此次推出的 飞天加速计划使得我了解到了相关领域的知识。
|
5天前
|
弹性计算 人工智能 安全
云上十五年——「弹性计算十五周年」系列客户故事(第二期)
阿里云弹性计算十五年深耕,以第九代ECS g9i实例引领算力革新。携手海尔三翼鸟、小鹏汽车、微帧科技等企业,实现性能跃升与成本优化,赋能AI、物联网、智能驾驶等前沿场景,共绘云端增长新图景。
|
11天前
|
存储 弹性计算 人工智能
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
2025年9月24日,阿里云弹性计算团队多位产品、技术专家及服务器团队技术专家共同在【2025云栖大会】现场带来了《通用计算产品发布与行业实践》的专场论坛,本论坛聚焦弹性计算多款通用算力产品发布。同时,ECS云服务器安全能力、资源售卖模式、计算AI助手等用户体验关键环节也宣布升级,让用云更简单、更智能。海尔三翼鸟云服务负责人刘建锋先生作为特邀嘉宾,莅临现场分享了关于阿里云ECS g9i推动AIoT平台的场景落地实践。
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
|
3天前
|
云安全 人工智能 安全
Dify平台集成阿里云AI安全护栏,构建AI Runtime安全防线
阿里云 AI 安全护栏加入Dify平台,打造可信赖的 AI
|
10天前
|
人工智能 自然语言处理 自动驾驶
关于举办首届全国大学生“启真问智”人工智能模型&智能体大赛决赛的通知
关于举办首届全国大学生“启真问智”人工智能模型&智能体大赛决赛的通知