c语言十进制数组转字节数组,【C语言学习】十进制转二进制和十六进制|函数封装|数组等基础要点讲解...

心得感悟

对于宏定义的使用,我还只是一知半解,不过在日后学习过程中回头看,应该会有新的理解和感悟吧。封装和数组的使用的确让程序变得更加简洁方便,在练习数组的使用时,了解到了知识盲区,如果给一个数组赋初值0(或不赋值),则里面的所有元素的值都为0。经过几天的练习,我明显感觉到我编程的速度比以前快了,准确地说应该是程序逻辑思维更强了。果然编程还是需要自己思考多一点,想明白每个程序的原理,慢慢地就会发现自己不知何时就掌握了程序的逻辑思维。

1. 目的

复习float,int,long,char类型用法

复习比较运算符

理解掌握数据类型转换

掌握自定义头文件和实现文件的使用

掌握数组的使用

2. 技术

char类型的使用

比较运算符的注意事项

++ -- 的运用

自定义头文件和实现文件

封装

解决“头文件互相引用出错”的问题

数组的基本使用

写一个程序,用数组储存1-100的数,并输出它们的和

写一个程序,实现由十进制转二进制,十进制转十六进制

3. 技术的使用

char类型的使用

char型数值可用%d,%c打印,用%d打印出来则为ASCII码

比较运算符的注意事项

比较运算符有 > < == != || &&

&& 前为假,后面不执行

| | 前为假,后面执行

i = 10;

j = 20;

if(i < 20 && j++ >10){…};//前为假,j++不执行

运行后 j = 20

if(i < 20 || j++ >10){…};//前为假,j++执行

运行后 j = 21

++ -- 的运用

a++ 表达式结束后才+1

++a 先+1,再运算

int temp1 = 20;

printf("1:%d\n",temp1++);

printf("1:%d\n",temp1);

//运行结果为20,21

//a++ 当表达式结束之后 在+1

//++a;先+1 再去运算

自定义头文件和实现文件

.h 函数的声明,变量的声明(不能赋值)

.c 具体实现 实现函数的功能 操作变量

1.新建一个头文件

void login(void);

2.新建一个实现文件

#include"ATMapp.h"

#include

#include "stdafx.h"

void login(void) {

printf("************************\n\n");

printf(" 登录\n\n");

printf("************************\n\n");

}

封装

1.创建.h文件

2.创建.c文件

3.在.h文件导入.c文件

4.在使用的地方导入.h文件

#include "stdafx.h"

#include"ATMapp.h"

#include

int main()

{

login();

return 0;

}

解决“头文件互相引用出错”的问题

解决办法:使用宏定义

宏定义优点:

1.给特定数值一个特定的意义

2.便于管理

#ifndef

#define

代码块(.c)

#endif

数组的基本使用

什么时候用?

答:需要存储多个同种类型数据时。

1.能存储数据 就必须有内存

2.如何定义一个数组同时为他分配内存

3.数组定义必须明确知道数组大小

a.初始化几个就是几个

4.数组的名字就是数组的首地址(第一个元素的地址)

int main(int argc, char const *argv[])

{

//int a = 10;

//定义一个数组 里面存的都是float的值 可以存4个数据

//4*4byte=16byte

float score[]={29,235,235,245};

//访问第一个元素的值 0....n-1

score[0];

//获取第一个元素的地址

&score[0];

//使用%p打印地址

printf("%p\n",&score[0]);

printf("%p\n",score);

//b.在定义时明确指定数组的大小

int temp[5];

//c.明确指定大小 并且初始化部分数据

int temp2[5] = {1,2};

//如何使用数组

//访问 通过下标来访问 0 —— n-1

printf("%d\n",temp2[0] );

//赋值

temp2[0] = 6;

return 0;

}

写一个程序,用数组储存1-100的数,并输出它们的和

for循环实现

int main()

{

int num[100];

int i = 0;

int sum = 0;

for (i = 0; i < 100; i++) {

num[i] = i + 1;

sum += num[i];

}

printf("%d", sum);

system("pause");

return 0;

}

while循环实现

int main()

{

int num[100];

int i = 0;

int sum = 0;

while (i<100)

{

num[i] = i + 1;

sum += num[i];

i++;

}

printf("%d", sum);

system("pause");

return 0;

}

写一个程序,实现由十进制转二进制,十进制转十六进制

先选一个十进制数计算,弄清楚它的运算顺序,再进行编写

顺序:对原数字求余,并存入数组→原数字/2(/16)→到数组下一个位置

十六进制有字母,在此用以下方法打印

#include "stdafx.h"

#include

int main()

{

int num1 = 0;

int i = 0;

int j = 0;

int two[20];

printf("【转换成二进制】\n");

printf("请输入一个数字:");

scanf_s("%d", &num1);

while(1){

two[i] = num1 % 2;

num1 /= 2;

if (num1 == 0) {

break;

}

i++;

}

for (j=i; j >= 0; j--) {

printf("%d", two[j]);

}

printf("\n\n");

int num2 = 0;

int m = 0;

int n = 0;

char six[20];

printf("【转换成十六进制】\n");

printf("请输入一个数字:");

scanf_s("%d", &num2);

while (1){

six[m] = num2 % 16;

num2 /= 16;

if (num2 == 0) {

break;

}

m++;

}

for (n=m; n >= 0; n--) {

int k = six[n];

if (k >= 10) {

printf("%c", 'A' + k - 10);

//'A'对应的ASCII码值为10

}

else

{

printf("%d", k);

}

}

printf("\n\n");

system("pause");

return 0;

}

4.进制转换程序的实现效果

7082f7ac707f

进制转换演示1.gif

7082f7ac707f

进制转换演示2.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值