iOS培训,iOS学习---------型技术博客、期待与您交流!------------

一、各种进制的总结

1.二进制
(1) 在c语言中二进制以0b开头,输出二进制格式没有固定的格式,自定义输出二进制格式的函数可以如下定义:
#include <stdio.h>

int main()
{
    void  printfBinary(int);
    
    printfBinary(20);
    
    return 0;
}

void printfBinary(int n)
{
    int bits = sizeof(int) * 8;  //计算出整型变量所占的字节数
    while (bits-->0) {
        
        //n的二进制形式向右移动bits个字节,然后同1进行按位与运算,保留原来的数值,进行打印。
        printf("%d", n>>bits&1);
        
               if (bits%4 == 0) {
            printf(" ");
        }
    }
}

2. 八进制
八进制以 0 开头, 使用 %o 输出整数,不带符号
 
3. 十六进制
十六进制以0x开头,使用 %x 输出整数
4. 十进制
 
c语言中除了上述三种格式的进制数外,普通的数据就是以十进制表示的。使用 %d 输出带符号整数, %u 输出不带符号整数
二、互换两个变量值的方法

1.借助中间变量值的方法进行互换
假如两个变量的值分别为: int a = 5, b=6;  如果通过另一个变量来交换,具体的代码如下:

void swap()
{
    int a = 5, b=6;
    
    int c = a;  //现将a的值放入c中
    a = b;
    b= c;
}

2. 直接交换

  1. a = b - a;   //原来a变成两值之差
  2. b = b - a;   //原来b的值变为a
  3. a = b + a;   //原来a的值变为b

3. 根据位或运算进行交换,利用位或运算定律 即 a^b^a = b

  1. a = a ^ b;
  2. b = a ^ b;
  3. a = a ^ b;

4.交换两个数的做法,让我想起一个面试题,如下

 
有两个杯子,分别为A = 5ml 和B = 3ml ,问怎么得到4ml 水, 水是无限的,但是不能使用另外的容器,此题想到有两个方法:

(1) 先将盛满水的A倒入 B 中,然后再将B容器倒出,剩余的A = 2 再倒入B ,  盛满 A 再倒入 B,这时A =4ml;

   (2)    先将盛满的 B 倒入 A中 ,然后 再盛满B 倒入A中, B 这时为1ml ,倒出A,将B倒入A,然后 ,盛满B再倒入A 即可得 A=4ml;
 
 
 
 
 

黑马程序员——C语言开门片内存分析的更多相关文章

  1. 黑马程序员—C语言的函数、数组、字符串

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.函数 定义:函数是代码复用的一种机制. 函数的基本语法: 返回类型 函数名 ( 参数类型 参 ...

  2. 黑马程序员——C语言基础 内存剖析

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)进制 进制是一种计数的方式,数值的表示形式.有多种进制十进制.二进制 ...

  3. 黑马程序员——C语言基础语法 关键字 标识符 注释 数据及数据类型

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (一下内容是对黑马苹果入学视频的个人知识点总结) (一)C语言简单介绍 (1)C语言程序是由函数组成的任何C语言程序都是由一 ...

  4. 黑马程序员——C语言基础 char字符 数组

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)char类型 1)存储细节 ASCII单字节表(双字节GBK\GB2 ...

  5. 黑马程序员—创建JDBC框架及原理分析

    对于Java数据库的连接,由最初学习的每次全部手工代码,到后面的不断利用知识简化代码量:这是不断学习的过程,就像人类由原始社会的钻木取火到当代的文明,都是一步步过来的! 本文不从最开始的JDBC入门开 ...

  6. 黑马程序员——OC语言 内存管理

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)计数器 每个对象内部都保存了一个与之相关联的整数,称为引用计数器,当 ...

  7. 黑马程序员——C语言基础 scanf函数 基本运算 三目运算符

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (一下内容是对黑马苹果入学视频的个人知识点总结) (一)scanf函数 1>  简单介绍一下scanf函数   这是在 ...

  8. 黑马程序员——C语言基础 函数

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)函数的定义 1> 任何一个C语言程序都是由一个或者多个程序段( ...

  9. 黑马程序员——OC语言基础语法 面向对象的思想

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结)(一)基础语法 1)关键字 @interface.@implementati ...

随机推荐

  1. GruntJs安装及使用入门(自定义grunt任务,合并压缩js、css)

    一.Grunt.js简介(实现自动化) 1)简要说明: 1.GruntJs是基于node的javascript命令行工具,可以自动化构建.测试.生成文档的项目管理工具: 2.使用GruntJs可以自动 ...

  2. [Java Concurrent] 并发访问共享资源的简单案例

    EvenGenerator 是一个偶数生成器,每调用一个 next() 就会加 2 并返回叠加后结果.在本案例中,充当被共享的资源. EvenChecker 实现了 Runnable 接口,可以启动新 ...

  3. Struts2初学习记录

    以下笔记内容来自尚硅谷_Struts2_佟刚老师的视频教程+自己一点点整理 来源免责声明 一. 1. VS 自实现: 1). 搭建 Struts2 的开发环境 2). 不需要显式的定义 Filter, ...

  4. 站内信DB设计实现

    两年前,万仓一黍在博客园发了两篇关于站内信的设计实现博文,<群发"站内信"的实现>.<群发"站内信"的实现(续)>,其中阐述了他关于站内 ...

  5. ffmpeg错误隐藏框架分析

    本文主要是分析ffmpeg的错误隐藏框架,故解码流程此处不会特地进行讨论,网上其他地方其实也有不少介绍相关流程的了,但发现基本没有介绍错误隐藏流程的,故本文希望能填补这个空白. 我们直接从decode ...

  6. SpringMVC整合fastjson-1.1.41

    以前用fastjson也只是硬编码,就好像这篇博文写的http://blog.csdn.net/jadyer/article/details/24395015 昨天心血来潮突然想和SpringMVC整 ...

  7. OpenStack Networking

    今天的数据中心网络比以往不论什么时候包括的设备都要多,比如server.网络设备.存储系统和安全设备等.这当中有非常多被近一步划分为多个虚拟机和虚拟网络.IP地址的数量.路由配置和安全规则能够迅速达到 ...

  8. Android实现计时与倒计时(限时抢购)的几种方法

    在购物网站的促销活动中一般都有倒计时限制购物时间或者折扣的时间,这些都是如何实现的呢? 在一个安卓客户端项目中恰好遇到了类似的问题,一开始使用的是Timer与 TimerTask, 虽然此方法通用,但 ...

  9. Android 百度地图 SDK v3.0.0 (三) 添加覆盖物Marker与InfoWindow的使用

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37737213 上篇博客已经实现了地图的定位以及结合了方向传感器用户路痴定位方向, ...

  10. Android - Broadcast机制

    以下资料摘录整理自老罗的Android之旅博客,是对老罗的博客关于Android底层原理的一个抽象的知识概括总结(如有错误欢迎指出)(侵删):http://blog.csdn.net/luosheng ...