程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 黑馬程序員——C語言開門片內存分析,黑馬程序員開門

黑馬程序員——C語言開門片內存分析,黑馬程序員開門

編輯:關於C語言

黑馬程序員——C語言開門片內存分析,黑馬程序員開門


 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;          

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved