当前位置:网站首页>Decimal to binary

Decimal to binary

2022-06-11 07:12:00 lihongtao8209

One 、 explain :
1.R(len,i) The meaning of macros
set up len=8
Sequence R value
i=0 8-0-1=7
i=1 8-1-1=6
i=2 8-2-1=5
i=3 8-3-1=4
i=4 8-4-1=3
i=5 8-5-1=2
i=6 8-6-1=1
i=7 8-7-1=0
2.
test1.txt Deposited
test
Two Chinese characters , As shown in the figure below :
 Insert picture description here
3.
Program compiler code is UTF-8
Two 、 Code

#include<stdio.h>
#include<string.h>
#define R(len,i) (len-i-1)
#define ONE_BYTE 8
char u1[ONE_BYTE+1]="";
char u2[ONE_BYTE+1];
char u3[ONE_BYTE+1];
char path[256]="";
const char* dir="/storage/emulated/0";
const char* file="C4droid/test1.txt";
int makePath(const char* dir,const char* file);
int readFile(char* filename);
void rprint8bits(char* rstr,char* ostr);
void toBinary8Byte(int _1Decimal,char * _8BitStr);
int main()
{
    
	int n=0;
	n=makePath(dir,file);
	printf("%d,%s\n",n,path);
	printf("------------------------\n");
	readFile(path);
	printf("------------------------\n");
	toBinary8Byte(8,u1);
	printf("------------------------\n");
	rprint8bits(u2,u1);
}
int makePath(const char* dir,const char* file)
{
    
	strcpy(path,dir);
	strcat(path,"/");
	strcat(path,file);
	return strlen(path);
}
int readFile(char* filename)
{
    
	FILE * f;
	int i=0;
	char cc;
	f=fopen(filename,"r");
	if(f==NULL)
	{
    
		printf("open %s error.\n",filename);
		return -1;
    }
    for(;!feof(f);i++)
    {
    
    	cc=fgetc(f);
        //putchar(cc);
        printf("%d %c\n",cc,cc);
    }
    fclose(f);
}

void toBinary8Byte(int _1Decimal,char * _8BitStr)
{
    
	int i=0;
	int quotient=0;
	int remain=0;
	int decimal=_1Decimal;
	memset(_8BitStr,0,sizeof(char)*ONE_BYTE+1);
	do
    {
    
    	quotient=decimal/2;
         remain =decimal%2;
         _8BitStr[i]=remain;
         printf("%d %d [%c]\n",quotient,remain,_8BitStr[i]);
         i++;
         decimal=quotient;
    }while(quotient!=0);
    printf("%s\n",_8BitStr);
}
/* rstr reverse string. ostr original string */
void rprint8bits(char* rstr,char* ostr)
{
    
	int i=0;
	int len=8;
	for(;i<len;i++)
	{
    
		rstr[R(len,i)]=ostr[i];
    }
    for(i=0;i<len;i++)
    {
    
    	printf("%d",rstr[i]);
    }
}

3、 ... and 、 test result
 Program test results

原网站

版权声明
本文为[lihongtao8209]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/03/202203020522382443.html