IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言--整型在内存中的存储--大小端 -> 正文阅读

[C++知识库]C语言--整型在内存中的存储--大小端

原码、反码、补码

1.?三种表示方法都有符号位和数值位,符号位用 '0' 表示正数,用 '1' 表示负数。

2.?对于整型来说:数据存放内存中其实存放的是补码。

原码:直接按照正负数的形式翻译成二进制。

反码原码的符号位不变,其他位依次取反。

补码:反码+1得到补码。

大小端介绍

?为了解释这种情况我们就要引入大小端的概念。

大端字节序列存储模式:是指数据的低位保存在内存的高地址中,而数据的高位保存在低地址中。

小端字节序列存储模式:是指数据的低位保存在内存的低地址中,而数据的高位保存在高地址中。

解析上面的代码:

?题目:设计一个小程序来判断当前机器的字节序

解题思路:若要存储整数1,只要判断第一个字节即可,若为1,即为小端,否则为大端。

代码涉及的知识点:指针类型决定了指针解引用能访问多少个字节。

#include<stdio.h>
int check_sys()
{
	int i = 1;
	char* p = (char*)&i;
	if (*p == 1)
		return 1;
	else
		return 0;
}

//优化:
int check_sys()
{
	int i = 1;
	char* p = (char*)&i;
	return *p;
}

//再进一步优化:
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;
}

运行结果:

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-30 15:24:34  更:2021-11-30 15:27:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:54:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码