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 语言中的内存分析相关推荐

  1. C语言中动态内存分配的本质是什么?

    摘要:C语言中比较重要的就是指针,它可以用来链表操作,谈到链表,很多时候为此分配内存采用动态分配而不是静态分配. 本文分享自华为云社区<[云驻共创]C语言中动态内存分配的本质>,作者: G ...

  2. c语言malloc引用类型作参数,c语言中动态内存分配malloc只在堆中分配一片内存.doc...

    c语言中动态内存分配malloc只在堆中分配一片内存 .C语言中动态内存分配(malloc)只在堆中分配一片内存,返回一个void指针(分配失败则返回0),并没有创建一个对象.使用时需要强制转换成恰当 ...

  3. keil551的芯片包不能用_r语言中使用Bioconductor 分析芯片数据

    原文链接: r语言中使用Bioconductor 分析芯片数据​tecdat.cn 介绍 芯片数据分析流程有些复杂,但使用 R 和 Bioconductor 包进行分析就简单多了.本教程将一步一步的展 ...

  4. c语言中全局变量内存,C语言——全局变量和局部变量在内存中的区别——及编译后的内存分区【栈-堆-全局存储区-文字常量区-程序代码区】...

    目录: 一:全局变量 二:局部变量 三:C语言经过编译之后将内存分为以下几个区域 (1)栈(stack) (2)堆(heap) (3)全局(静态)存储区 (4)文字常量区 (5)程序代码区 四:区别 ...

  5. 【C语言进阶深度学习记录】三十三 C语言中动态内存分配

    如何在程序运行的时候动态给程序分配内存? 文章目录 1 动态内存分配的意义 1.1 C语言中如何动态申请内存空间 1.2 malloc和free的用法 1.3 calloc与realloc 1.31 ...

  6. c语言中申请内存并初始化,c语言中结构体的定义、初始化及内存分配

    #include struct person { char *name; int age; }; int main() { //结构体可以定义在函数内,也可以定义到函数外 //相当于全局变量与局部变量 ...

  7. 体验VisualStudio 2013中的内存分析功能

    内存分析一直是个比较令人头痛的问题,Visual Studio 2013中就集成了一个内存分析的功能,可以方便我们进行分析内存的占用情况.本文将简单的介绍一下如何使用这个功能. 首先以一个简单的程序为 ...

  8. Java中的内存分析

    分析内存是深入了解编程的第一步,以下来演示一下编程中常见的内存分析,文章脉络: 数据类型 数据类型不同,内存分配位置和大小也不同,用一张图表示Java中的数据类型.除了基本数据类型,其它全部是引用类型 ...

  9. IT之路-C语言中五大内存区及变量的存储类型、简单shell脚本(上).ZCSDN-2017.7.18

    今天我干了啥,首先是眯瞪一会儿,然后一上午就过去了.为什么我会迷瞪一会儿,因为昨天晚上玩了一个小时的骑马与砍杀, 我的笔记本i5-3230M-2.60GHz  双核 4G运存 NVIDIA GEFOR ...

最新文章

  1. swift_009(Swift 类型别名/安全/推断)
  2. python变量初始化的位置不当、程序结果可能会出现问题_解决tensorflow由于未初始化变量而导致的错误问题...
  3. 在CcentOS系统上将deb包转换为rpm包
  4. 卡特兰数Catalan Number
  5. 玩转 React(二)- 新型前端开发方式
  6. 如何在手机上使用TensorFlow
  7. 20191019:(leetcode习题)第K个语法符号
  8. node怎么解析vue代码_vue中node_modules中第三方模块的修改使用详解
  9. java 线程等待队列_Java多线程学习(五)——等待通知机制
  10. SQL 格式化输出 千分位 ¥货币格式
  11. 程序员的电脑文件管理技巧
  12. Thinkpad SL-400 XP驱动下载与安装方法
  13. rs232接口_RS232串口通信:接口定义、标准接法详细说明,一看就懂了
  14. Statement 和 PreparedStatement之间的关系和区别
  15. word未响应解决方案汇总
  16. Python 史上最全第三方库收集(第二弹)
  17. 奇异值分解(SVD) --- 线性变换几何意义
  18. Windows 11 L2TP连接尝试失败,因为安全层在初始化与远程计算机的协商时遇到了一个处理错误
  19. 齐二TK6916/20/26/32系列数控落地铣镗床简介1
  20. ssh远程连接报错:WARNING: POSSIBLE DNS SPOOFING DETECTED(已解决)

热门文章

  1. JavaScript 语言基础知识点总结(思维导图)
  2. RHEL5.3下MRTG+SNMP的搭建
  3. matlab光顺拐点,基于MATLAB的最大误差双圆弧逼近曲线的算法及实现.pdf
  4. java 容器_我也来聊聊,JAVA容器与迭代器
  5. Linux下查看文件内容的ASCII码以检查内容的编码一致
  6. Android 电量优化
  7. Win10 jdk的安装以及环境变量的配置,及需要注意的坑
  8. js进阶 11-6 jquery如何获取和设置元素的宽高(jquery多方法)
  9. PHP安装之configure的配置参数
  10. js将时间戳格式化为HH:ii:ss的格式