Logo



c++求十进制源码(C语言十进制)

本文目录一览:

十进制的原码、补码

十进制-67的原码是01000011、反码是10111100和补码是10111101。

转换规则:

1、负整数的原码为二进制前面加符号位;

-67=1000011(二进制)=11000011(原码)

2、负整数的反码=原码各位取反(除了符号位外);

11000011(原码)=10111100(反码)

3、负整数的补码=负整数的反码+00000001;

10111100(反码)=10111101(补码)

扩展资料:

已知一个数的补码,求原码的操作其实就是对该补码再求补码:

⑴如果补码的符号位为“0”,表示是一个正数,其原码就是补码。

⑵如果补码的符号位为“1”,表示是一个负数,那么求给定的这个补码的补码就是要求的原码。

例:已知一个补码为11111001,则原码是10000111(-7)。

因为符号位为“1”,表示是一个负数,所以该位不变,仍为“1”。

其余七位1111001取反后为0000110;再加1,所以是10000111。

参考资料来源:百度百科-补码

求c语言程序二进制八进制十六进制转换为十进制的代码

#includestdio.h

int main()

char *p,s[6];

int n;

p=s;

gets(p);

n=*p-'0';

while(*(++p)!=0)

n=n*8+*p-'0';

printf("%d\n",n);

return(0);

} 这是八进制转换成十进制的。后面的二进制跟十进制的你自己写写看

求将任意进制数转换为十进制的c语言代码

任意进制间的转换

#include stdio.h

#include string.h

#include math.h

/*该函数可以实现小于整型数据的任意进制之间转换*/

/*以下函数将a进制数s转换成b进制并输出*/

void f(int a,int b,char s[])

{ char r[17];

int i,n,t,k;

for(n=strlen(s)-1,i=t=0;*(s+i)!='\0';i++,n--) /*这里先转换成十进制数*/

{ if(*(s+i)='9')

t+=(*(s+i)-'0')*int(pow(a,n));

else

t+=(*(s+i)-'A'+10)*int(pow(a,n));

for(i=0;t!=0;i++) /*再转换成b进制*/

{ k=t%b;

if(k9)r[i]='A'+k-10;

else r[i]='0'+k;

t/=b;

r[i]='\0';

s=strrev(r);

printf("%s",s);

  c++求十进制源码 


评论


最新评论