[C语言]大小端及整形输出问题

假设在一个32位little endian 的机器上运行下面的程序,结果是多少 ?

1.1先看以下三个程序

#include <stdio.h>
int main()
{
   
	long long a = 1, b = 2, c = 3;
	printf("%lld %lld %lld\n", a, b, c);     // 1 2 3
	printf("%d %d %d %d %d %d\n", a, b, c);  // 1 0 2 0 3 0
	return 0;
}
#include <stdio.h>
int main()
{
   
	long long a = -2;
	printf("%lld\n", a);   //-2
	printf("%d %d\n", a);  //-2 -1
	return 0;
}

1.2分析&&解答

在这里插入图片描述

  1. 正数原反补相同
  2. 123的补码如下
    1: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001
    小端存储: 0001 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
    2: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0010
    小端存储: 0010 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
    3: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0011
    小端存储: 0011 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
  3. 3个long long的数被当成int 去截断 所以3个数最后可以输出6个int数
  4. 补码是一种形式 存储是小端形式 获取的时候还要再对调回来 所以结果依次是1 0 2 0 3 0

在这里插入图片描述
-2: 原码反码补码
1000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0010
1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1101
1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1110
小端存储
1110 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111
分成两部分
第一部分的正常形式1111 1111 1111 1111 1111 1111 1111 1110
原码:
1111 1111 1111 1111 1111 1111 1111 1101
1000 0000 0000 0000 0000 0000 0000 0010 ==> -2

第二部分的正常形式1111 1111 1111 1111 1111 1111 1111 1111
原码:
1111 1111 1111 1111 1111 1111 1111 1110
1000 0000 0000 0000 0000 0000 0000 0001 ==> -1
所以输出为-1

相关推荐

  1. C语言 判断当前存储大小问题

    2023-12-18 11:26:03       23 阅读
  2. 问题大全——C语言数据结构篇(自用)

    2023-12-18 11:26:03       21 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-18 11:26:03       17 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-18 11:26:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-18 11:26:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-18 11:26:03       18 阅读

热门阅读

  1. Termux搭建nodejs环境

    2023-12-18 11:26:03       37 阅读
  2. js数组方法笔记

    2023-12-18 11:26:03       35 阅读
  3. Spring 依赖查找知识点总结

    2023-12-18 11:26:03       37 阅读
  4. C语言中的结构体成员赋值与访问详解

    2023-12-18 11:26:03       44 阅读
  5. unity中实现Edge浏览器鼠标手势的功能

    2023-12-18 11:26:03       46 阅读
  6. Android Studio导出Excel的一些感悟

    2023-12-18 11:26:03       33 阅读
  7. 什么是计算机网络?计算机网络基础知识

    2023-12-18 11:26:03       39 阅读
  8. LeetCode第376场周赛

    2023-12-18 11:26:03       40 阅读