C语言1到256十进制转二进制程序

C语言1到256十进制转二进制程序,第1张

i值被改变导致死循环

#include <stdioh>

#include <stringh>

int main(void)

{

    int a[20],i,k;

    for (i = 1; i < 257; i++)

    {

        int n = i;

        for (k = 0;; k++)

        {

            a[k] = n % 2;

            n = n / 2;

            if (n == 0)

            {

                for (; k >= 0; k--)

                    printf("%d", a[k]);

                printf("\t");

                break;

            }

        }

    }

    system("pause");

    return 0;

}

char s [128]是说定义了一个名叫s的字符型数组,这个数组有128个元素(也就是有128个char型变量所占用的字节)。通常,一个char型变量只占一个8位二进制字节,所以char s [128]是为字符变量s在内存中划分了128个字节,编号为s[0]到s[127]。这些字节可以用s的下标访问,如:s [0]表示第一个,s [1]表示第二个……s [127]表示最后一个!

看我写的这个函数能不能解决你的问题?

# include "stdafxh"

# include "stdioh"

# include "stringh"

# include "stdlibh"

# include "conioh"

# include "mathh"

void DecDoubletoB(void){

long double n_Dec=00,temp=00;

char A_Dec[20]="",B_Str[33]="",cx[2]="",i,j,pt=NULL;//

printf("Please input a Decimal number!\nn_Dec=");

j=20;

for(i=0;i<j;){

if((cx=getch())==0xD && i) break;

else if(cx==0x8 && i){

printf("\b%c\b",' ');

if((A_Dec+--i)==''){

pt=NULL;

j=20;

}

(A_Dec+i)=NULL;

continue;

}

else if(!pt && i==9 && cx!='') continue;//

if(cx>='0' && cx<='9' || !pt && cx==''){

strcat(A_Dec,cx);

printf("%c",cx);

if(cx==''){

pt=A_Dec+i+1;

j=i+10;

}

i++;

}

}

for(i=0;;i++){//

if((A_Dec+i)=='' || (A_Dec+i)==NULL) break;

n_Dec=10n_Dec+(A_Dec+i)-'0';

}

printf("\n\n\t%s(10)------>%s",A_Dec,ltoa((long)n_Dec,B_Str,2));//Output integer

B_Str=NULL;

if(pt){//

n_Dec=00;

for(i=0;;i++){//

if((pt+i)==NULL) break;

temp=(pt+i)-'0';

for(j=-1;j<i;temp/=100,j++);

n_Dec+=temp;

}//

for(i=0;i<32;i++){//

cx='0';

if((n_Dec=2)>=10){

cx+=(char)(n_Dec);

n_Dec-=10;

} //

strcat(B_Str,cx);

if(!n_Dec) break;

}

}

for(i--;i>=0;i--)//To delete '0' after binary fraction

if((B_Str+i)=='0') (B_Str+i)=NULL;

else break;

printf(pt "%s(2)\n\n" : "%s(2)\n\n",B_Str);//Output binary fraction

}

int main(int argc, char argv[]){

DecDoubletoB();

return 0;

}

我知道一点 计算机是通过识别开关两种概念

而2进制数十有 0 和1组成的

只能说它计算的时候是把数字转化成0110100010 等等的2进制数来运算的

而不是用2进制编写的,你要是让个程序员10 01 的在那敲,那还不累死啊

现在把好多种可能 做成一个命令,用英文字符来做名称,需要用到这个命令的时候只需输入命令代码 而不是输入2进制数了

好多种命令集合到一起,就形成了程序,这些命令都是非常严谨的,因为计算机是死的,一步一步的按照命令去做,所以程序又有好多格式

常见的有C语言 来编写程序

c语言编程将十进制转化为2进制可按手工转换规则进行程序转换。

整数占四个字节,每字节8位,共32位。所以,可以定义一个32位的数组来存储转换结果。

循环将整数进行除2取余数,余数存储到数组中。

当整数整除为0时,结束循环

逆序输出数组,得到转换结果

参考代码:

#include <stdioh>

void main()

{

int c[32],i=0,n;

scanf("%d", &n) ; //输入待转换整数n

do {

c[i++]=n%2;

n/=2;

} while(n!=0) ;

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

printf("%d",c[i] );

printf("\n");

}

用数组模拟就行。

思路:

1、将输入转化成二进制数,逆序存入数组中。

2、用两数组模拟四则运算,并将运算的结果存入第三个数组中。

3、逆序输出第三个数组。

希望对你有帮助!

c语言不能直接表示二进制,没有数字前缀表示。

例子如下:

假设有一个

int

类型的数,值为5,那么,我们知道它在计算机中表示为:

00000000

00000000

00000000

00000101

5转换成二制是101,不过int类型的数占用4字节(32位),所以前面填了一堆0。

扩展资料

进制是一种计数的方式,常用的有二进制、八进制、十进制、十六进制。任何数据在计算机内存中都是以二进制的形式存放的。

我对进制的个人理解,二进制数是以2为计算单元,满2进1位的数;八进制数是以8为计算单元,满8进1位的数。

对于任何一个数字,我们都可以用不同的进制来表示,比如,十进制数12,用二进制表示为1100,用八进制表示为14,用十六进制表示为0xc。

以上就是关于C语言1到256十进制转二进制程序全部的内容,包括:C语言1到256十进制转二进制程序、二进制转换、二进制可以做哪些程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10209970.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存