ios進位

來源:互聯網
上載者:User

標籤:

////  main.m//  LesssonScale////  Copyright (c) 2015年 池海濤. All rights reserved.//#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) {       以10為例,不同進位的表示方法     十進位: 10     二進位:0b10;     八進位:010     十六進位:1x10;     int  a = 0b100;     printf("%0x\n",a);       如何輸出進位數:     %d ------十進位     %o  ------八進位     %0x  ------十六進位       位元運算符 :按位 &,按位或 |,按位非 ~,按位異或 ^,左移<<,右移>>     按位與 & :同1為1,否則為0,經常用於對某一位清零          int a = 5 & 7;     5--0101     7--0111       =0101=5     printf("a = %d\n", a);          按位或 | : 同0為0,否則為1.經常用於保留某一位.     int a = 5 | 7;       5--0101     7--0111       =0111     printf("a = %d\n", a);          按位異或 ^相同為0,不同為1.     int a = 5 ^ 7;      5--0101     7--0111       =0010 = 2     printf("a = %d\n", a);          按位非 ~;     char b = ~4;   //4--0000 0100, ~4=1111 1011 -1 ->1111 1010 ->1000 0101 =-5     printf("b = %d\n", b);          如果是一個有符號位的數,這最高位代表符號位,1 代表 負數, 0 代表正數          資料在記憶體中儲存時,是以補碼的形式儲存的,正數的補碼是正數的本身,負數的補碼是     絕對值 取反 加1.          資料類型的取值範圍:
    根據char的取值範圍和unsigned char的取值範圍的位元,如char和unsigned char都是8位,char型最高位是符號位,1代表為負數,所以為-2^7-1~~+2^7-1  即-128~+1    27  ,而unsigned char為2^8-1=256
即0~255
無符號: char 0-----255 (2的8次方減1) short 0-----2的16 - 1; int 0-----2的32 - 1; 有符號: char -2的7次方 --- 2的7次方 - 1 short -2的15次方 --- 2的15次方 - 1 int -2的31次方 --- 2的31次方 - 1 左移 << unsigned char d = 1; printf("左移後的結果%d\n", d << 4 ); 右移 >> unsigned char e = 255; printf("右移後的結果%d\n", e >> 1); //將100 高四位,低四位互換  unsigned char number = 0b01100100; //1.先將 number 左移 4位 unsigned char left = number << 4; //2.再將 number 右移 4位 unsigned char right = number >> 4; //3.按位或  unsigned char result = left | right; printf("result = %d\n", result); 將 10010010 奇偶位互換 unsigned char num = 0b10010010; //清零操作使用 按位&, 保留的數位為1 ,清0 數的位為 0 //1.將奇數位變成偶數位,左移一位  unsigned char life = num << 1; //2.保留偶數位, 奇數位清0  unsigned char clearJI = life & 0b10101010; //3.將偶數位變奇數位, 右移1位  unsigned char rightNew = num >> 1; //4.保留奇數位,偶數位清0  unsigned char clearOU = rightNew & 0b01010101; //5.按位或 |  unsigned char resultNew = clearJI | clearOU; printf("resultNew = %d \n", resultNew); 棧區記憶體配置原則:由高到底分配,有低到高存取. int a = 10; printf("%p\n",&a); int b = 10; printf("%p\n",&b); //數組名代表數組的首地址,也就是數組的第一個元素的地址,是一個常量地址 int a[4] = {9, 5, 2, 7}; printf("%p\n",&a[0]); printf("%p\n",&a[1]); printf("%p\n",&a[2]); printf("%p\n",&a[3]); printf("%p\n",a); a=1010 b=1100 a=0110 b=1010 //交換兩個變數 int a=10,b=12; //a=1010^b=1100; a=a^b; //a=0110 //找到a和b中不相同的位 b=a^b; //b=1010 //原b和ab不相同異或 -> a =1010 a=a^b; //a=1100 //  printf("a = %d\nb = %d", a, b); return 0; }

 

ios進位

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.