C语言基础二

[size=xx-small]scanf函数可以把用户在键盘上输入的数据保存到变量中。需要在文件开始加上如下一条语句
#include <stdio.h>
scanf函数中也可以使用各种占位符
scanf函数中必须使用变量的地址而不能是变量的名称

字符类型数据是C语言中最简单的一组数据,用char表示。一共包含256个不同的字符,例如'a','0'和'+'。
char类型对应的数字范围不确定,unsigned char类型对应的数字范围是确定的,从0到255。
ASCII码表规定了哪个字符对应着哪个数字。
'a'到'z'之间的所有字符是连续递增排列的
‘A’到'Z'之间的所有字符也是连续递增排列的
‘0’到‘9’之间的所有字符也是连续递增排列的
'h' - 'a' = 'H' - 'A'
'e' - 'a' = '4' - '0'

计算机的存储设备按字节来管理,每个字节有一个自己独立的地址。任何一个变量都是用几个相邻的字节表示的。

sizeof关键字可以用来计算一个变量或某个数据类型所占空间大小,以字节为单位。在sizeof小括号中可以写任何计算公式,但是产生的任何影响在这条语句结束后不会保留。

short(短整形),unsigned short(无符号短整形)也可以用来表示整数,他们各自占两个字节的空间。short表示的数字范围有正有负,unsigned short 表示的数字范围是非负的。

int(整形),unsigned int(无符号整形)也可以用来表示整数,他们各自占4个字节。int表示的数字范围有正有负,unsigned int表示的数字范围是非负的。

long(长整形),unsigned long(无符号长整形)和上面一组一样

float(单精度浮点数)可用于表示带小数点的数字,保留小数点后6位。这种类型数据占4个字节。

double(双精度浮点数)也可用于表示带小数点的数字,保留小数点后12位。这种类型数据占8个字节。

使用一组0或者1表示数字的方法叫做二进制。
每个字节分成8段,每段或者是0或者是1。字节内部使用二进制表示数字。

十进制到二进制的转换
107 = 64 + 32 + 8 + 2 + 1 = 01000000 + 00100000 + 00001000 + 00000010 + 00000001 = 01101011

二进制到十进制的转换
01110011 = 2^6 + 2^5 + 2^4 + 2^1 + 2^0 = 115

计算机中使用补码记录数字,前面介绍的十进制到二进制的转换方法得到的叫做原码。正数的原码和补码是一样的。

负数补码计算方法
-69 = 0 - 69 = 100000000 - 01000101 = 10111011
简单计算方法(相反数的补码按位求反加1)

负数的补码最左边一位一定是1,正数的补码最左边一位一定是0。所以这一位又称为符号位。

把一个二进制数字从右向左每三位分成一组,每组用一个0到7之间的数字表示,这种写法叫做八进制。

把一个二进制数字从右向左每四位分成一组,每组用一个数字表示,这种写法叫做十六进制。用字母a到字母f表示10到15这六个数字。

操作符是表达式的重要组成部分。操作符分成单目操作符,双目操作符和三目操作符。

C语言中支持+,-,*,/和%操作符。
赋值操作符=
自增操作符(++)和自减操作符(--)


/*
scanf练习
*/
#include <stdio.h>
int main() {
int shu_zi = 0, shu_zi1 = 0;
printf("请输入两个数字:");
scanf("shu_zi = %d shu_zi1 = %d", &shu_zi, &shu_zi1);
printf("%d %d\n", shu_zi, shu_zi1);
printf("请再次输入一个数字:");
//scanf("%d", shu_zi); //必须提供变量的地址
return 0;
}


/*
scanf练习
*/
#include <stdio.h>
int main() {
int shu_zi = 0;
printf("请输入一个1到9之间的数字:");
scanf("%d", &shu_zi);
printf("%d X %d = %d\n", shu_zi, shu_zi, shu_zi * shu_zi);
return 0;
}


/*
char类型练习
*/
#include <stdio.h>
int main() {
char ch = 'a';
unsigned char uch = 'a';
int shu_zi = 400;
printf("sizeof(char)是%d\n", sizeof(char));
printf("sizeof(ch)是%d\n", sizeof(ch));
printf("sizeof(unsigned char)是%d\n", sizeof(unsigned char));
printf("sizeof(uch)是%d\n", sizeof(uch));
ch = 200;
uch = 200;
printf("ch是%d,uch是%d\n", ch, uch);
printf("sizeof(ch = 'b')是%d\n", sizeof(ch = 'b'));
printf("ch是%c\n", ch);
ch = shu_zi; //会发生数据丢失
return 0;
}


/*
八进制和十六进制练习
*/
#include <stdio.h>
int main() {
printf("%d %d %d\n", 69, 0105, 0x45);
printf("%d %o %x\n", 69, 69, 69);
printf("%p\n", 69);
return 0;
}


[/size]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值