最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

Python第二弹:原码,反码,补码,运算符,优先级

XAMPP案例 admin 53浏览 0评论
计算机中的数据有三种表示方法:原码,反码,和补码

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

原码,反码,补码均有符号位和数值位两部分
符号位为: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   (如果超出范围,溢出,(运算是所使用符合范围的整数标准类型))

整数类型

类型 存储大小 值范围
char 一字节 -128~127或0~255
unsigned char 一字节 0~255
signed char 一字节 -128~127
int 2或4字节 -32768~32767或-2147483648~2147483647
unsigned int 2或4字节 0~65535或0~4294967295
short 2字节 -32,768 ~ 32,767
unsigned short 2字节 0 ~ 65,535
long 4字节 -2,147,483,648 ~ 2,147,483,647
unsigned long 4字节 0 ~ 4,294,967,295

 

浮点类型

BA86

注意:e或者E—–>10
实数型的表示:
1,有字母e或者E
2,e之前必须有数值
3,e之后必须为整数
例如:123=1.23X10^2   <===>1.23e2
字符类型:用一对单引号括起来的单个字符,如:‘a’ ,‘b’
字符串常量:双引号括起来的字符序列
ASCII字符代码表

BA086

BA0086

类型

 

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

int:

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

BA00086

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

BA000086

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)
geng好的方式,是定义一个常量
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;}
单目运算比乘除的优先级高:

BA0000086

程序表达的是顺序执行的动作,
数字之间的交换
#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++=10a=11++a=12a=12
BA00000086
倒叙数列代码测试:
#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;}

转载请注明:XAMPP中文组官网 » Python第二弹:原码,反码,补码,运算符,优先级