IOS之c语言笔记 day04

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 1100
int number = 12; // 1100

// 0000 0000 0000 0000 0000 0000 0000 1101
int 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只写unsigned

long unsigned int c = 34343;
long unsigned = long unsigned int

short unsigned = short unsigned int

singned和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
!条件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值