十进制转二进制C语言十进制转二进制C语言
/* 十制数据化成二制数据,可使用或源进进进进进进进进进进进进进进进进进进进进进进进 *//* d_to_b.h */
#define data_length 79177
#define data_bit 16 //进进进进进进进进进化成二制后的数据位
#define shift_length 3 //移位位进
#define com_code 0 //取1进进进进进进进数化
#define code ~com_code
double data_in_i[data_length]; // I路入的十制数...
十进制转二进制C语言
/* 十制数据化成二制数据,可使用或源进进进进进进进进进进进进进进进进进进进进进进进 *//* d_to_b.h */
#define data_length 79177
#define data_bit 16 //进进进进进进进进进化成二制后的数据位
#define shift_length 3 //移位位进
#define com_code 0 //取1进进进进进进进数化
#define code ~com_code
double data_in_i[data_length]; // I路入的十制数据寄存器进进进进进进进进进进进
double data_in_q[data_length]; // Q路入的十制数据寄存器进进进进进进进进进进进
int data_reg_i[data_length];
int data_reg_q[data_length];
int binary_i[data_bit]; //存放二制数据的寄存器进进进进进进进进
int binary_q[data_bit]; //存放二制数据的寄存器进进进进进进进进
int binary_i_com[data_bit]; //存放二制数据的寄存器进进进进进进进进进进
int binary_q_com[data_bit]; //存放二制数据的寄存器进进进进进进进进进进
/* d_to_b.c */
#include
#include
#include "d_to_b.h"
/******************************************************************
十制化成二制,且数可用是源示进进进进进进进进进进进进进进进进进进进进进进进进~~~~
******************************************************************/
int main()
{
int i;
int j, k;
/* ----------------------进入数据--------------------- */
FILE *fp_in_i, *fp_in_q;
fp_in_i = fopen("tx_interp_out_i.txt", "r");
fp_in_q = fopen("tx_interp_out_q.txt", "r");
for(i = 0; i < data_length; i++)
{
fscanf(fp_in_i, "%lf", &data_in_i[i]);
fscanf(fp_in_q, "%lf", &data_in_q[i]);
}
fclose (fp_in_i);
fclose (fp_in_q);
/* -------------------------------------------------- */
FILE *fp_shift_i, *fp_shift_q;
fp_shift_i = fopen("tx_shift_out_i.txt", "w+");
fp_shift_q = fopen("tx_shift_out_q.txt", "w+");
FILE *fp_out_i, *fp_out_q;
fp_out_i = fopen("change_out_i.txt", "w+");
fp_out_q = fopen("change_out_q.txt", "w+");/* -------------需要移位的数据先行移位,即化成整数,不需要的,置进进进进进进进进进进进进进进进进进进进进进
shift_length=0------------ */
for(i = 0; i < data_length; i++)
{
data_reg_i[i] = data_in_i[i] * pow(2, shift_length);
data_reg_q[i] = data_in_q[i] * pow(2, shift_length);
fprintf(fp_shift_i, "%d\n", data_reg_i[i]);
fprintf(fp_shift_q, "%d\n", data_reg_q[i]);}
/* ----------------------------------------------- *//* ---------------------------十制化二制,数用进进进进进进进进进进进进进-------------------------------- */
#if com_code
for(i = 0; i < data_length; i++)
{
/* --------------I路正数化 进进------------- */
if(data_reg_i[i] >= 0)
{
binary_i[data_bit - 1] = 0; //符号位进0
fprintf(fp_out_i, "%d", binary_i[data_bit - 1]);
for(j = 0, k = fabs(data_reg_i[i]); j < data_bit - 1; j++, k = k/2)
{
if(k % 2 == 0)
binary_i[j] = 0;
else
binary_i[j] = 1;
}
for(j = data_bit - 2; j >= 0; j--)
{
fprintf(fp_out_i, "%d", binary_i[j]);
}
fprintf(fp_out_i, "\n");
}
/* --------------I路数化 进进进------------- */
else
{
binary_i[data_bit - 1] = 1; //符号位进1
fprintf(fp_out_i, "%d", binary_i[data_bit - 1]);
/* ---------------------------以下要按位取反---------------------------- */
if( -1 * data_reg_i[i] % 2 == 0 )
{
binary_i[0] = 0;
binary_i_com[0] = 0;
}
else
{
binary_i[0] = 1;
binary_i_com[0] = 1;
}
for(j = 1, k = fabs(data_reg_i[i]) / 2; j < data_bit - 1; j++, k = k/2)
{
if(k % 2 == 0 && binary_i[j - 1] == 0 && binary_i_com[j - 1]
== 0)
{
binary_i[j] = 0;
binary_i_com[j] = 0;
}
else if(k % 2 == 0 && binary_i[j - 1] == 0 && binary_i_com[j -
1] == 1)
{
binary_i[j] = 0;
binary_i_com[j] = 1;
}
else if(k % 2 == 0 && binary_i[j - 1] == 1 && binary_i_com[j -
1] == 0)
{
binary_i[j] = 1;
binary_i_com[j] = 1;
}
else if(k % 2 == 0 && binary_i[j - 1] == 1 && binary_i_com[j -
1] == 1)
{
binary_i[j] = 1;
binary_i_com[j] = 1;
}
else if(k % 2 == 1 && binary_i[j - 1] == 0 && binary_i_com[j -
1] == 0)
{
binary_i[j] = 1;
binary_i_com[j] = 1;
}
else if(k % 2 == 1 && binary_i[j - 1] == 0 && binary_i_com[j -
1] == 1)
{
binary_i[j] = 1;
binary_i_com[j] = 0;
}
else if(k % 2 == 1 && binary_i[j - 1] == 1 && binary_i_com[j -
1] == 0)
{
binary_i[j] = 1;
binary_i_com[j] = 0;
}
else
{
binary_i[j] = 1;
binary_i_com[j] = 0;
}
}
/* ------------------------------------------------------------------- */
for(j = data_bit - 2; j >= 0; j--)
{
fprintf(fp_out_i, "%d", binary_i_com[j]);}
fprintf(fp_out_i, "\n");
}
/* ------------------------------------- *//* --------------Q路正数化 进进------------- */
if(data_reg_q[i] >= 0)
{
binary_q[data_bit - 1] = 0; //符号位进0
fprintf(fp_out_q, "%d", binary_q[data_bit - 1]);
for(j = 0, k = fabs(data_reg_q[i]); j < data_bit - 1; j++, k = k/2)
{
if(k % 2 == 0)
binary_q[j] = 0;
else
binary_q[j] = 1;
}
for(j = data_bit - 2; j >= 0; j--)
{
fprintf(fp_out_q, "%d", binary_q[j]);
}
fprintf(fp_out_q, "\n");
}
/* --------------Q路数化 进进进------------- */
else
{
binary_q[data_bit - 1] = 1; //符号位进1
fprintf(fp_out_q, "%d", binary_q[data_bit - 1]);
/* ---------------------------以下要按位取反---------------------------- */
if( -1 * data_reg_q[i] % 2 == 0 )
{
binary_q[0] = 0;
binary_q_com[0] = 0;
}
else
{
binary_q[0] = 1;
binary_q_com[0] = 1;
}
for(j = 1, k = fabs(data_reg_q[i]) / 2; j < data_bit - 1; j++, k = k/2)
{
if(k % 2 == 0 && binary_q[j - 1] == 0 && binary_q_com[j - 1]
== 0)
{
binary_q[j] = 0;
binary_q_com[j] = 0;
}
else if(k % 2 == 0 && binary_q[j - 1] == 0 && binary_q_com[j
- 1] == 1)
{
binary_q[j] = 0;
binary_q_com[j] = 1;
}
else if(k % 2 == 0 && binary_q[j - 1] == 1 && binary_q_com[j
- 1] == 0)
{
binary_q[j] = 1;
binary_q_com[j] = 1;
}
else if(k % 2 == 0 && binary_q[j - 1] == 1 && binary_q_com[j
- 1] == 1)
{
binary_q[j] = 1;
binary_q_com[j] = 1;
}
else if(k % 2 == 1 && binary_q[j - 1] == 0 && binary_q_com[j
- 1] == 0)
{
binary_q[j] = 1;
binary_q_com[j] = 1;
}
else if(k % 2 == 1 && binary_q[j - 1] == 0 && binary_q_com[j
- 1] == 1)
{
binary_q[j] = 1;
binary_q_com[j] = 0;
}
else if(k % 2 == 1 && binary_q[j - 1] == 1 && binary_q_com[j
- 1] == 0)
{
binary_q[j] = 1;
binary_q_com[j] = 0;
}
else
{
binary_q[j] = 1;
binary_q_com[j] = 0;
}
}
/* ------------------------------------------------------------------- */
for(j = data_bit - 2; j >= 0; j--)
{
fprintf(fp_out_q, "%d", binary_q_com[j]);
}
fprintf(fp_out_q, "\n");
}
/* ------------------------------------- */}
/* ----------------------------------------------------------------------------------- */
#endif
#if code
/* ------------------------------十制二制,数不用进进进进进进进进进进进进进--------------------------- */for(i = 0; i < data_length; i++)
{
/* --------------I路化 进------------- */
if(data_reg_i[i] >= 0)
{
binary_i[data_bit - 1] = 0; //符号位进0
fprintf(fp_out_i, "%d", binary_i[data_bit - 1]);
}
else
{
binary_i[data_bit - 1] = 1; //符号位进1
fprintf(fp_out_i, "%d", binary_i[data_bit - 1]);
}
for(j = 0, k = fabs(data_reg_i[i]); j < data_bit - 1; j++, k = k/2)
{
if(k % 2 == 0)
binary_i[j] = 0;
else
binary_i[j] = 1;
}
for(j = data_bit - 2; j >= 0; j--){
fprintf(fp_out_i, "%d", binary_i[j]);}
fprintf(fp_out_i, "\n");
/* --------------Q路化 进------------- */
if(data_reg_q[i] >= 0)
{
binary_q[data_bit - 1] = 0; //符号位进0
fprintf(fp_out_q, "%d", binary_q[data_bit - 1]);
}
else
{
binary_q[data_bit - 1] = 1; //符号位进1
fprintf(fp_out_q, "%d", binary_q[data_bit - 1]);
}
for(j = 0, k = fabs(data_reg_q[i]); j < data_bit - 1; j++, k = k/2)
{
if(k % 2 == 0)
binary_q[j] = 0;
else
binary_q[j] = 1;
}
for(j = data_bit - 2; j >= 0; j--){
fprintf(fp_out_q, "%d", binary_q[j]);}
fprintf(fp_out_q, "\n");
}
/* ----------------------------------------------------------------------------------- */
#endif
printf("change has passed!\n");
fclose(fp_shift_i);
fclose(fp_shift_q);
fclose(fp_out_i);
fclose(fp_out_q);
return 0;
}
本文档为【十进制转二进制C语言】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。