python中计算符号的优先级_更好的理解Python第二弹--计算,运算符,优先级

计算机中的数据有三种表示方法:原码,反码,和补码

所有的运算与存储都是以补码形式运算

原码,反码,补码均有符号位和数值位两部分

符号位为:0 表示“正”

1 表示 “负”例如:0101 5 1101 -5存储和运算时均使用补码,这样可以将符号位和数值域统一处理,将加法和减法也统一处理

反码

反码:正数的反码与其原码相同,负数的反码是除符号位意外对其原码诸位去反

+10的原码:

00000000 00001010

+10的反码:

00000000 00001010

-10的反码:

11111111 11110101

补码

补码:正数的补码与原码相同,负数的补码是在其反码的末位+1(二进制类型的+1)

-10的补码11111111 11110110

补码的意义

补码的意义:符号位和数值域统一处理,将加法和减法可以统一处理

10-10------>10+(-10)

+10的补码:00000000 00001010

-10的补码: 11111111 11110110

经过等于0 :00000000 00000000

溢出:

(补码之间相互对应相加,不断向上进一,最后一个一“溢出”)溢出情况:int分为long(int)和short(int),

short(int)字符范围为:-32768~+32767 (如果超出范围,溢出,(运算是所使用符合范围的整数标准类型))整数类型浮点类型

注意:e或者E----->10实数型的表示:

1,有字母e或者E2,e之前必须有数值

3,e之后必须为整数

例如:123=1.23X10^2 <===>1.23e2

字符类型:用一对单引号括起来的单个字符,如:‘a’ ,‘b’

字符串常量:双引号括起来的字符序列ASCII字符代码表ASCII表

类型

char:通常是一个字节(八位),一个整数类型

int:整型

float:单精度浮点数,一个符号,8位指数,23位小数

double:双精度浮点数,一位符号,11位指数,52位小数

void:表示类型的确实

数据类型的转换:

1:隐形转换:

自动类型转换:(算数转换)(不同类型数据运算转换成相同数据以便运算长度更长,精度更高)

赋值转换:(赋值两端数据类型相等)赋值转换统一左边类型

输出转换

函数调用转换

2,显式转换:

强制转换:(类型名)表达式 :表达式按照括号类型转换(浮点数强制整型,不四舍五入,直接舍)

C语言标准库函数转换双精度

变量

#include "stdio.h"int main()

{

int price=0; //定义一个变量,变量的名称为price,类型为int,初始值是0 printf("请输入金额(元):");

scanf("%d",&price);

int change = 100 - price;

printf("找您%d元。\n",change);

return 0;

}

变量的一般形式:<类型名称><变量名称>

int price;

int amount;

int price,amount;

标识符构建结构与Python相同

初始化:当赋值发生在定义变量的时候,就是变量的初始化

变量初始化

<类型名称><变量名称>=<初始值>;

int price =0 ;

int amount =100;

int price=0,amount=100;//组合变量定义时,也可以在这个定义中单独给单个变量赋值

变量类型:int类型:一旦确认,在这个程序中就是int

读入数:

scanf把一些数据输入 ---全称scan format

scanf("%d",&price);

要求scanf这个函数读入下一个整数,读到的结果赋值给变量price

注意price前面的&

常量:

int change = 100 - price

固定不变的数,是常数。直接写在程序里,我们称作直接量(literal)

更好的方式,是定义一个常量

const int AMOUNT = 100;

#include "stdio.h"int main()

{

const int AMOUNT = 100;

int price = 0;

printf("请输入金额(元):");

scanf("%d",&price);

int change =AMOUNT -price; //更容易理解数字的含义 printf("找您%d元。\n",change);

return 0;

}

const(一般情况下,全部大写)是一个修饰符,加在int的前面,用来给这个变量加上一个const(不变的)的属性。这个const的属性表示这个变量的值一旦初始化,就不能再修改了

#include "stdio.h"int main()

{

int amount = 100;

int price = 0;

printf("请输入金额(元):");

scanf("%d",&price);

printf("请输入票面");

scanf("%d",&amount);

int change =amount -price;

printf("找您%d元。\n",change);

return 0;

}

当读入多个变量

#include "stdio.h"int main()

{

int a;

int b;

printf("请输入两个整数:");

scanf("%d %d",&a,&b);

printf("%d + %d =%d\n",a,b,a+b);

return 0;

}

英尺转换:

#include "stdio.h"int main()

{

printf("请输入身高的英尺和英寸,""如输入\"5 7\"表示5英尺7英寸");

int foot;

int inch;

scanf("%d %d",&foot,&inch);

printf("身高是%f米。\n",((foot +inch/12)*0.3048));

return 0;

}

以上的结果运行,并非我们想要的结果

因为:两个整数的运算的结果只能取整数(会将小数本分去掉)

浮点数:带小数点的数值

改进上面代码:将12 改为12.0 ,int是定义为int类型的变量,如果把int换成double,我们就把它改为double类型的浮点数变量

double的意思是“双”,它本来是“双精度浮点数”的第一个单词,人们用来表示浮点数类型,除了double,还有flout(意思就是浮点!)表示单精度浮点数

#include "stdio.h"int main()

{

printf("请输入身高的英尺和英寸,""如输入\"5 7\"表示5英尺7英寸");

double foot;

double inch;

scanf("%lf %lf",&foot,&inch);//输入整数的时候用%d,输入double我们用%lf printf("身高是%f米。\n",((foot +inch/12)*0.3048));

return 0;

}

计算时间差:

#include "stdio.h"int main()

{

int hour1,minute1;

int hour2,minute2;

scanf("%d %d",&hour1,&minute1);

scanf("%d %d",&hour2,&minute2);

int t1 =hour1 *60 +minute1;

int t2 =hour2 *60 +minute2;

int t=t2-t1;

printf("时间差是%d小时%d分。",t/60,t%60);

return 0;

}

程序表达的是顺序执行的动作,

数字之间的交换

#include "stdio.h"int main()

{

int a=5;

int b=6;

int t;

t=a;

a=b;

b=t;

printf("a=%d,b=%d\n",a,b);

return 0;

}

// 输出:a=6,b=5

递增递减运算符:

“++”和“--”是两个很特殊的运算符,它们是单目运算符(注意优先级别),这个算子还必须是变量。这两个运算符分别叫做递增和递减运算符,他们的作用是给这个变量+1或者-1.

count++;

count+= 1;

count= count + 1;

前缀后缀:

++和--可以放在变量的前面,叫做前缀形式,也可以放在变量的后面,叫做后缀形式

a++的值是a加上1以前的值,而++a的值是加了1以后的值,无论哪个,a自己的值都加了1了。

#include "stdio.h"int main()

{

int a;

a=10;

printf("a++=%d\n",a++);

printf("a=%d\n",a);

printf("++a=%d\n",++a);

printf("a=%d\n",a);

return 0;

}

// 输出:a++=10

a=11

++a=12

a=12

倒叙数列代码测试:

#include "stdio.h"int main()

{

int hundred;

int one;

int ten;

printf("每个测试是一个3位的正整数");

int i;

scanf("%d",&i);

hundred=i/100;

printf("hundred=%d\n",hundred);

one=i%10;

printf("one=%d\n",one);

ten=i-hundred*100-one;

printf("ten=%d\n",ten);

printf("输出逆序的数%d",hundred+ten+one*100);

return 0;

}

微信关注:foryouos

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值