Nios® II Embedded Design Suite (EDS)
Support for Embedded Development Tools, Processors (SoCs and Nios® II processor), Embedded Development Suites (EDSs), Boot and Configuration, Operating Systems, C and C++
Announcements
Intel Support hours are Monday-Fridays, 8am-5pm PST, except Holidays. Thanks to our community members who provide support during our down time or before we get to your questions. We appreciate you!

Need Forum Guidance? Click here
Search our FPGA Knowledge Articles here.

Simple binary problem

Altera_Forum
Honored Contributor II
1,315 Views

Hello guys, I want to convert decimal from dec_buffer to a bin_buffer.  

Example: dec_buffer[1]=1; bin_buffer[1][12]={000000000001}; 

dec_buffer[2]=2; bin_buffer[2][12]={000000000010}; 

dec_buffer[3]=3; bin_buffer[3][12]={000000000011};and soon 

 

The error is at "bin_buffer[buf_num] = show_binary(dec_buffer[buf_num]);" ; Error: incompatible types in assignment 

 

I think it's a newbie question since I am a newbie on C programming, so please give me a hint :) 

NB:If there's any undeclared constant, please ignore it since i didn't copy all of my code here. I copied the part with issues only.  

 

# include <stdio.h> # define BUFFER_NUM_MAX 192 //16*12# define BIT_NUM_MAX 12 //12bit int dec_buffer; int bin_buffer; int bit_num; int buf_num; int show_binary(int num){ int j,b={0}; printf("data converted: %d ; binary: ",num); for (j=1;j<=BIT_NUM_MAX;j++){ b=num%2; num=num/2; } for(j=0;j<BIT_NUM_MAX;j++){ printf("%d",b); } printf("\n"); return b; } int main(void){ for (buf_num=1;buf_num<=BUFFER_NUM_MAX;buf_num++){ dec_buffer = buf_num; bin_buffer = show_binary(dec_buffer);//Error: incompatible types in assignment }
0 Kudos
3 Replies
Altera_Forum
Honored Contributor II
93 Views

If it's about the different array dimension, I have tried below code,but no luck. 

 

int show_binary(int num){ int j,b; printf("data converted: %d ; binary: ",num); for (j=1;j<=BIT_NUM_MAX;j++){ b=num%2; num=num/2; } for(j=0;j<BIT_NUM_MAX;j++){ printf("%d",b); } printf("\n"); return b; }
Altera_Forum
Honored Contributor II
93 Views

If I highlighted some error register. And print out the converted(decimal to binary) buffers, I got the value I wanted, but the problem is i want to save the value to bin_buffer since I will need them for further process.  

My current objective is :  

if dec_buffer[1] = 1 ; bin_buffer[1][11] ~ bin_buffer[1][1] = 0 and bin_buffer[1][0] = 1; 

if dec_buffer[2] = 2 ; bin_buffer[1][11] ~ bin_buffer[1][2] = 0 , bin_buffer[1][1] = 1; bin_buffer[1][1] = 0; 

and soon.. 

 

Need some help here :) Thank you :D 

 

# include <stdio.h> # define BUFFER_NUM_MAX 192 //16*12# define BIT_NUM_MAX 12 //12bit int dec_buffer; int bin_buffer; int bit_num; int buf_num; int show_binary(int num){ int j,b={0}; printf("data converted: %d ; binary: ",num); for (j=1;j<=BIT_NUM_MAX;j++){ b=num%2; num=num/2; } for(j=0;j<BIT_NUM_MAX;j++){ printf("%d",b); } printf("\n"); return b; } int main(void){ for (buf_num=1;buf_num<=BUFFER_NUM_MAX;buf_num++){ dec_buffer = buf_num; /*bin_buffer = */show_binary(dec_buffer);//Error: incompatible types in assignment }
Altera_Forum
Honored Contributor II
93 Views

problem solved. thank you

Reply