C 语言中的内存分析
C 语言中的内存分析
一、进制
我们需要了解的4中进制:二进制、八进制、十进制、十六进制
#include <stdio.h>
int main()
{
//默认情况下是十进制
intnumber = 12;
//二进制
intnumber2=0b1100;
//八进制
intnumber3 = 014;
//十六进制
intnumber = 0xc;
return0;
}
Printf以不同进制形式输出的类型:
%d 通常以十进制输出一个整数
%o通常以八进制输出一个整数
%x通常以十六进制输出一个整数
%u 以不带符号的十进制输出整数
%c 输出一个字符
%s 输出一个或者多个字符串
%f 以小数形式输出单双度数值,默认情况下是6位
%e移标准指数形式输出单双精度数,数字部分小水位数为6位
任何数据在内存中都是以二进制的形式存在的!
一个int类型数据占据4个字节、32bit
例如:
Int number=12;
在内存中显示为:
0000 0000 0000 0000 0000 0000 0000 1100
N位二进制的取值范围:
2位二进制位的取值范围:0~3
3位二进制位的取值范围:0~7
N为二进制位的取值范围:2n-1
把一个整数以二进制输出的代码测试:
Void putBinary(intn)
{
Int bits = sizeof(n)*8-1;
While(bite>=0){
Printf(“%d”,n>>bit&1);
If( bits%4==0)
Printf(“ ”);
}
Printf(“\n”);
}
二、数据类型的取值范围:
Char-----1个字节---8bit---取值范围:-27~27-1
Int-------4个字节---32bit---取值范围:-231-231-1
Float----4个字节----32bit---取值范围:3.4e-38~3.4e38||-3.4e38~-3.4e-38
Double---8个字节---64bit—取值范围:1.7e-308~1.7e308||-1.7e308~1.7e-308三、类三、型说明符:
Int --------4个字节-----------%d
short --------4个字节-----------%d
long --------8个字节-----------%ld
long long ----8个字节-------%lld
signed有符号:正数、0、负数
unsigned无符号:包含0、正数
signed与unsigned的区别:signed最高位要当做符号位;unsigned最高位不要当作符号位。
四、位运算
1. &按位与
例如:
9&5;
把数据转化成二进制进行与运算
2. |按位或
例如:
9|5;
把数据转化成二进制进行或运算
3. ^按位异或:只要两个进制位不行同就为1相同就位0
例如:
9^5;
把数据转化成二进制进行异或运算
N^N 结果为0;
任何数值跟0异或得到原来的数值
4. ~按位去反
例如:
~9;
9的所有二进制位都进行取反;
5.<<左移
把某个整数的二进制位全部往左移动N位高位丢弃低位补0
6. >>右移
把某个整数的二进制位全部往右移动N位保持符号位不变
五、char
//单引号‘’只能括注单字节的字符
//Char c=’男’;这个是错误的写法
//char c = “A ”;这个也是错误写法
//Char c = A ; 这个也是错误的写法
Char可以当作整数来用,它的取值范围为:-128~127;
转义字符:
\n 换行 ASCII的值为10
\t 跳到下一个tab位置 ASCII的值为9
\\ 代表一个反斜线字符 ASCII的值为92
\’ 代表一个单引号字符 ASCII的值为39
将一个字母的大小写进行转换
大写upper
小写lowwer
Char upper(char c)
{
If(c>=’a’&&c<=’z’)
return c-32;
elseif
return c;
}
转载于:https://blog.51cto.com/jeason/1594078
C 语言中的内存分析相关推荐
- C语言中动态内存分配的本质是什么?
摘要:C语言中比较重要的就是指针,它可以用来链表操作,谈到链表,很多时候为此分配内存采用动态分配而不是静态分配. 本文分享自华为云社区<[云驻共创]C语言中动态内存分配的本质>,作者: G ...
- c语言malloc引用类型作参数,c语言中动态内存分配malloc只在堆中分配一片内存.doc...
c语言中动态内存分配malloc只在堆中分配一片内存 .C语言中动态内存分配(malloc)只在堆中分配一片内存,返回一个void指针(分配失败则返回0),并没有创建一个对象.使用时需要强制转换成恰当 ...
- keil551的芯片包不能用_r语言中使用Bioconductor 分析芯片数据
原文链接: r语言中使用Bioconductor 分析芯片数据tecdat.cn 介绍 芯片数据分析流程有些复杂,但使用 R 和 Bioconductor 包进行分析就简单多了.本教程将一步一步的展 ...
- c语言中全局变量内存,C语言——全局变量和局部变量在内存中的区别——及编译后的内存分区【栈-堆-全局存储区-文字常量区-程序代码区】...
目录: 一:全局变量 二:局部变量 三:C语言经过编译之后将内存分为以下几个区域 (1)栈(stack) (2)堆(heap) (3)全局(静态)存储区 (4)文字常量区 (5)程序代码区 四:区别 ...
- 【C语言进阶深度学习记录】三十三 C语言中动态内存分配
如何在程序运行的时候动态给程序分配内存? 文章目录 1 动态内存分配的意义 1.1 C语言中如何动态申请内存空间 1.2 malloc和free的用法 1.3 calloc与realloc 1.31 ...
- c语言中申请内存并初始化,c语言中结构体的定义、初始化及内存分配
#include struct person { char *name; int age; }; int main() { //结构体可以定义在函数内,也可以定义到函数外 //相当于全局变量与局部变量 ...
- 体验VisualStudio 2013中的内存分析功能
内存分析一直是个比较令人头痛的问题,Visual Studio 2013中就集成了一个内存分析的功能,可以方便我们进行分析内存的占用情况.本文将简单的介绍一下如何使用这个功能. 首先以一个简单的程序为 ...
- Java中的内存分析
分析内存是深入了解编程的第一步,以下来演示一下编程中常见的内存分析,文章脉络: 数据类型 数据类型不同,内存分配位置和大小也不同,用一张图表示Java中的数据类型.除了基本数据类型,其它全部是引用类型 ...
- IT之路-C语言中五大内存区及变量的存储类型、简单shell脚本(上).ZCSDN-2017.7.18
今天我干了啥,首先是眯瞪一会儿,然后一上午就过去了.为什么我会迷瞪一会儿,因为昨天晚上玩了一个小时的骑马与砍杀, 我的笔记本i5-3230M-2.60GHz 双核 4G运存 NVIDIA GEFOR ...
最新文章
- swift_009(Swift 类型别名/安全/推断)
- python变量初始化的位置不当、程序结果可能会出现问题_解决tensorflow由于未初始化变量而导致的错误问题...
- 在CcentOS系统上将deb包转换为rpm包
- 卡特兰数Catalan Number
- 玩转 React(二)- 新型前端开发方式
- 如何在手机上使用TensorFlow
- 20191019:(leetcode习题)第K个语法符号
- node怎么解析vue代码_vue中node_modules中第三方模块的修改使用详解
- java 线程等待队列_Java多线程学习(五)——等待通知机制
- SQL 格式化输出 千分位 ¥货币格式
- 程序员的电脑文件管理技巧
- Thinkpad SL-400 XP驱动下载与安装方法
- rs232接口_RS232串口通信:接口定义、标准接法详细说明,一看就懂了
- Statement 和 PreparedStatement之间的关系和区别
- word未响应解决方案汇总
- Python 史上最全第三方库收集(第二弹)
- 奇异值分解(SVD) --- 线性变换几何意义
- Windows 11 L2TP连接尝试失败,因为安全层在初始化与远程计算机的协商时遇到了一个处理错误
- 齐二TK6916/20/26/32系列数控落地铣镗床简介1
- ssh远程连接报错:WARNING: POSSIBLE DNS SPOOFING DETECTED(已解决)
热门文章
- JavaScript 语言基础知识点总结(思维导图)
- RHEL5.3下MRTG+SNMP的搭建
- matlab光顺拐点,基于MATLAB的最大误差双圆弧逼近曲线的算法及实现.pdf
- java 容器_我也来聊聊,JAVA容器与迭代器
- Linux下查看文件内容的ASCII码以检查内容的编码一致
- Android 电量优化
- Win10 jdk的安装以及环境变量的配置,及需要注意的坑
- js进阶 11-6 jquery如何获取和设置元素的宽高(jquery多方法)
- PHP安装之configure的配置参数
- js将时间戳格式化为HH:ii:ss的格式