逻辑与或非
逻辑上主要有:
(1)与:&&
(2)或:||
(3)非:!
详情请见数字逻辑与电路(大雾)
补充:短路求值
与的执行逻辑:
先判左侧的是否为真,然后判断右侧的是否为真;
但如果左侧的语句为假,那右侧的语句不会执行
或的执行逻辑:
类似于与的运算逻辑;
但如果左侧的语句为真,那么右侧的语句不会执行
进制:逢几进一
c语言中常用的进制有:十进制、二进制、八进制、十六进制
表现方式如下:
(1)十进制:int a=10
(2)二进制:int a=0b10
(3)八进制:int a=010
(4)十六进制:int a=0x10
注意:二进制没有相应的直接输出手段,需要自己编写函数进行转换
数据存储
数据的存储方式:原码、反码、补码
(1)原码的特点:
<1>最高位作为符号位,0表示正,1表示负
<2>其他数值部位就是数据本身绝对值得二进制数
<3>小数位表示为2^-x次幂
(2)正数的原码、反码、补码表示方法一致
(3)在负数情况下:
反码为原码除符号位外依次取反;
补码为在反码的基础上加1--我们也称之为"取反加一"
(4)补充
<1>补码的意义:
1.同意了零的编码
2.将符号位和其他位统一处理
3.将减法运算转变为加法运算
补充:两个用补码表示的数相加时,如果最高位(符号位)有进位,则被舍弃
ps:请不要忘记将补码还原到原码
加法:整数: [A]补 + [B]补 = [A+B]补 (mod 2^(n+1))
小数: [A]补 + [B]补 = [A+B]补 (mod 2)
减法:整数: [A-B]补 = [A]补 + [-B]补 (mod 2^(n+1))
小数: [A-B]补 = [A]补 + [-B]补(mod 2)
数据的存储路径:
地址和指针
指针的本质:
存储地址的变量--指针也就是内存地址,指针变量是用来存放内存地址的变量
(直接引用)取地址符:"&"--获取的是首地址的指针
以000000000061fe1c为例子:地址的本质是由16位16进制数字所组成--见计算机组成原理(大雾)
间接引用:"*"
用于知晓地址,但不知晓其名字的状况下
如何定义一个指针:
要指向的类型+"*"+变量名