[C语言十进制转化为二进制]一楼没有指出所有的错误,正确的程序如下,错误有标注,你的程序写得很罗嗦,自己好好改一下,会有很多收获 #include <iostream> using namespace std; #include<stdio.h> int turn2(...+阅读
在主函数调用自定义函数前,找出输入的数值中单个数位上的最大值,而能够应用的进制数是这个最大值再加1;后面我还改了一个觉得不对的地方,你可以考虑一下。
void main() { int i,n,a[3],j,m,max=0; bool id=false; scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%d%d%d",&a[0],&a[1],&a[2]); for(j=0;j<3;j++) { m=a[j]; while(m!=0) { if(max 二进制,八进制,十进制,十六进制 二进制是计算机内部所有数据的存储方式。 八进制,十进制,十六进制 是人能识别的数据格式。 一般来说,通常的二进制,八进制,十进制,十六进制。 是指存储在字符串里的二进制,八进制,十进制,十六进制。 十进制有字符串表示的十进制,BCD码表示的十进制(又分压缩和非压缩BCD)! 字符串的二进制,八进制,十进制,十六进制是给人看的! BCD码表示的十进制是计算机使用的! 计算机内部数据不再有二进制,八进制,十六进制的区别,都是二进制,只有十进制用BCD码。 二进制逢2进1,,八进制,十进制,十六进逢8进1 ,逢10进1,逢16进1 N进制逢N进1 二进制 八进制 十进制 十六进制 0 : 0000 0000 00 0 0 1 : 0000 0001 01 1 1 2 : 0000 0010 02 2 2 3 : 0000 0011 03 3 3 4 : 0000 0100 04 4 4 5 : 0000 0101 05 5 5 6 : 0000 0110 06 6 6 7 : 0000 0111 07 7 7 8 : 0000 1000 010 8 8 9 : 0000 1001 011 9 9 10 : 0000 1010 012 10 A 11 : 0000 1011 013 11 B 100: 0110 0100 144 100 64 十六进制用字母ABCDEF 或者 abcdef分别表示 10,11,12,13,14,15 C语言的表达式里 8进制前面加0 ,16进制前加0x;没有二进制的表示方法。 在字符串里和字符里反斜杆\nnn表示8进制, \xnnn 表示16进制; C语言,因为字符是整数的一种,所以可以直接用数值,表示字符的值!! char;和char c=97 等价! 除了二进制,C语言还会使用到八进制。 八进制是一种“逢八进一”的进制,它由 0~7 八个符号来描述。同样,此处通过十进制和八进制的对比来描述八进制的表示方式。 八进制基数为8,加法运算时逢八进一,减法运算时借一当八。例如,数字 0、1、5、7、14、733、67001、25430 都是有效的八进制。 当使用八进制表示十进制数字8时,由于表示八进制的符号只有 0~7,因此,根据逢八进一的规则,需要向高位进一位,表示为10。同理,使用八进制表示十进制数字16时,继续向高位进一位,表示为 20。 扩展资料 八进制转换为十进制的源代码如下 #include void main() { char *p,s[6];int n; p=s; printf("Please input a Octal number:"); gets(p); n=0; while(*(p)!='\0') { n=n*8+*p-'0'; p++; } printf("Octal number to Decimal number:%d",n); } 我解释一下: 不同的编译系统最大值不一样,你说的是Turbo C 2.0的编译系统!除过前面的一个0是说明它是正数,其它15位都是用来存放数值的,这个意思就是说这个编译系统最大的数不能超过2的15次方减1,即最大值可以表示为0111111111111111,它相当于十进制的32767,实际上使用整数往往超过32767,显然两个字节也存放不下(一个字节为8位,两个字节为16位),因此有的C语言编译系统(如Visual C++ )以四个字节表示一个整数,即(32位),这时,它的最大值是31个(前面一位说明它是正数,所以是31位)二进制的值都是1,即2的31次方减1,约为21亿,一般情况都可以满足使用要求了。 很详细了!希望能得到分! 以下为关联文档: 怎么用C语言编程把十进制转化成二进制c语言中没有二进制的格式输出符号. 你可以用itoa函数很方便的将一个10进制int转变成二进制字符串. 如: int i; char s[128]; scanf("%d",&i); itoa(i, s, 2); /*3个参数,第一个... C语言十进制转为二进制。方法不好,有个致命问题:pow是double结果,数据计算机可能产生误差。 给你的好的方法。 #include<stdio.h> #include <stdlib.h> #include <math.h> int main (void) { int a=0,i... C语言十进制转二进制且看我如何强法;x=x/ i++;/0),a[--i]);/; void trans(int x) { int a[30], 转换结束后再按相反的次序输出数组内容即可得到正确的结果; } 我觉得楼主的水平也不差; printf(" a[i... C语言十进制数转化为二进制数#include <stdio.h> void main() { int a; scanf(\"%d\",&a);//输入一个10进制数。 int result=0;//存储a的二进制结果。 int p=1;//p=1表示个位数 do { int b=a%2;//b是余数,第... C语言编程如何将十进制转化为2进制//#include "stdafx.h"//vc++6.0加上这一行. #include "stdio.h" void dfs(int k){ if(k) dfs(k/2); if(k) printf("%d",k%2); } void main(void){ int n; printf("Type an integer... 如何用c语言将十进制数转换为二进制数//--------------------------------------------------------------------------- #include <stdio.h> long int btd(char *s) /*将以字符串形式存储在s地址中的二进制数字... c语言如何用循环将十进制转为二进制#include"stdio.h" int er(int m); int ba(int f); int shiliu(int k); int n,a[30],c=0; void main() { int i,j; printf("*****欢迎使用这个程序,请选择序号*****\n"); scanf("%d",... 写十进制转化为二进制 c语言#include void main() { int x,i,j,b,a[10]; do{ scanf("%d",&x); }while(x1000); switch(x){ case 1: printf("1\n");break; case 2: printf("10\n");break; default: for(i=0;i{... C语言十进制转二进制和二进制转十进制举例 十进制123.转换成二进制123/2=61余数...1 ***********************61/2=30余数...1 ***********************30/2=15.......0 ***********************15/2=7........1...计算机语言中二进制八进制十进制十六进制之间具体的关系是怎
C语言中的八进制
C语言二进制