1) 最高位是符号位,0表示正数,1表示负数。
2) 如果是正数,正常表示(即原码),如果是负数,先求反码,再求补码(补码为反码加1)即为他的二进制表示。例如char型的1,用二进制表示为00000001;char型的-1用二进制表示为11111111。
常量,就是在程序运行过程中值无法被改变;变量,就是在程序运行过程中内部存储的值随时可以被改变。变量是“可读、可写”,而常量,是“只读”的。
整形常量:12、浮点型常量:12.35、实数型常量:1.3e-5、字符型常量:'a'、字符串型常量:"abc"、标识符常量:#define LEN 10。
变量一般存放在内存中:栈区, 静态数据区,全局变量区, 堆区。函数中定义的变量,如果不加特殊修饰,都是保存在栈区,函数调用结束,栈空间被自动释放。
定义变量:
<存储类型><数据类型><变量名>
static/auto/... int/char a
例如:static int a;char c;
存储类型:
自动类型转换
将一种类型的数据赋值给另外一种类型的变量时就会发生自动类型转换,例如:float a = 10;10是int类型的数据,需要先转换成float类型然后再赋值给变量a。
在不同类型的混合运算中,编译器也会自动地转换数据类型,将参与运算的所有数据先转换为同一种类型,然后再进行计算。转换的规则如下:
强制类型转换
自动类型转换是编译器根据代码自己判断的,有时候我们需要手动的进行数据类型转换,称之为强制类型转换,例如:
(int)(a+b)//将a + b 求得结果的数据类型强制转换为int型。
运算符的优先级
特殊运算符>单目运算符>双目运算符>三目运算>赋值运算>逗号运算
bash不支持浮点数
你可以借助bc或者awk实现
方法一:
c=$(echo "5.01-4*2.0"|bc)
echo $c
-2.99
方法二:
c=$(awk 'BEGIN{print 7.01*5-4.01 }')
echo $c
31.04
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)