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);