IOS之c语言笔记 day04

来源:互联网 发布:恩比德体测数据 编辑:程序博客网 时间:2024/04/28 10:10

day01

c语言基础

内存分析

  • 二进制: 0b\0B
  • 八进制: 0
  • 十六进制: 0x\0X

进制转换练习

十进制:12二进制:逢2进1--->>>>1100八进制:逢8进1--->>>>14十六进制:逢16进1--->>>>C 10 A,11 B,12 C,13 D,14 E,15 F

printf不同进制的输出方式

  • %d 有符号十进制整数
  • %o 无符号的八进制整数
  • %x 无符号的十六进制整数
  • %u 无符号的十进制整数
  • %c 输出一个字符串
  • %s 输出一个或多个字符
  • %f 以小数输出单、双精度数,默认6位小数
  • %e 以标准指数形式输出单、双精度数,6位小数

总结

  • %d\%i 十进制形式输出整数
  • %c 输出字符
  • %p 输出地址
  • %f 输出小数
  • %o 八进制形式输出整数
  • %x 十六进制形式输出整数

内存分析

// 一个int类型数据占据4个字节、32bit// 0000 0000 0000 0000 0000 0000 0000 1100int number = 12; // 1100// 0000 0000 0000 0000 0000 0000 0000 1101int number2 = 13; // 1101 字节 变量       内容 ffc1 ffc2   number2 0000 1101 ffc3           0000 0000 ffc4           0000 0000 ffc5           0000 0000 ffc6   number  0000 1100 ffc7           0000 0000 ffc8           0000 0000 ffc9           0000 0000

总结

内存寻址由大的内存地址开始分配,并且存放数据的时候也是从大的内存地址开始存放变量的地址就是它的第一个字节的地址

.089 == 0.089
aeb == a*10的b次方

二进制转换十进制
0b1100 == 0*2(0)+0*2(1)+1*2(2)+1*2(3)
= 0 + 0 + 4 + 8 = 12

十进制转换二进制
67 = 64 + 2 + 1
= 2的6次方+2的1次方+2的0次方
= 0b1000000 + 0b10 + 0b1
= 0b1000011

n位二进制的取值范围
2位二进位的取值范围 0~3
00 0
01 1
10 2
11 3

2位二进位的取值范围 0~7

000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7

0~2^n-1 == 0到2的n次方-1
最大值是2^n次方-1

负数和取值范围
最高位0正数
最高位1负数
负数涉及到反码和补码
负数的取值范围

4个字节 -> 31bit
最高位是符号位
正数 0~2的31次方-1
负数 -2的31次方

类型说明符(为了修饰int类型)

  • short 2个字节 %d
  • short int = short
  • long 8个字节 %ld == l
  • long == long int <扩充的整型) ==l
  • long long int 8个字节 %lld(64位上8个字节) 32位编译器上会有区别 == ll
  • long long int == long long == ll
  • signed == signed int 有符号:正数、0、负数 2的31次方-1 ,最高位要当做符号位

解析
signed -2的23次方- 2的31次方-1
unsigned 0 到 2的32次方-1

unsigned == unsigned int 无符号: 0、正数(不把最高位拿到当符号位,正数的最大值会变大 2的32次方-1 最高位不当做符号位int 默认就是有符号位,int最高位当做符号位一般人不写signed只写unsignedlong unsigned int c = 34343;long unsigned = long unsigned intshort unsigned = short unsigned intsingned和unsigned不会修改数据长度

以后需要研究的函数

// 输出一个整数的二进制存储形式void putBinary(int n){    int bits = sizeof(n) * 8;    while (bits-->0) {        printf("%d", n>>bits&1);        if (bits%4==0) printf(" ");    }    printf("\n");}  

位运算

  & 与  | 或  ^ 异或  ~ 取反  >> 右移  << 左移

sizeOf

用来计算一个变量或者一个常量、一种数据类型所占的内存字节数。

逻辑运算符

条件1&&条件2  两个条件都为真才返回1条件1||条件2  有一个条件为真才返回1!条件
0 0
原创粉丝点击