admin管理员组文章数量:1794759
二进制数之间的相互转换
首先将字符的数据使用c库函数atoi()转换为int 类型计算,在将值以字符的形式存储在数组中
适合不太大的小数
strrev() 函数反转字符串
1、使用int buff[]存储二进制数
2、使用递归
3、使用字符存储二进制数
1、使用int buff[128] 类型存储二进制数值 char* num_to_io(int num) { int a = 0; int buff[128] = {0}; int two[128] = {0}; for(int i = 0;1;i++) { buf[i] = num%2; num = num/2; if(num == 1) { buf[i+1] = num; a = i; break; } } for(int j =0; j <= a;j++) { two[j] = buff[a-j]; } for(int k = 0;k <= a;k++) { printf("%d",two[k]); } return 0; } 2、递归 #include <stdio.h> void convert(int n) { if(n > 1){ convert(n / 2) } printf("%d",n%2); } int main() { int n; scanf("%d",&n); convert(n); return 0; } 3、字符存储 //更改为字符存储 int main() { int num = 255; int a = 0; char buff[128] = {0}; char two[128] = {0}; for(int i = 0;1;i++) { if(num%2 == 1) { buff[i] = '1'; }else{ buff[i] = '0'; } num = num/2; if(num == 1) { buff[i+1] = '1'; a = i+1; break; } } printf("the num : "); for(int j = a; j>=0;j--) { two[a-j] = buff[j]; } printf("the m is %s\\n",two); return 0; }字符串的二进制数转换为十进制的int类型
字符串中的单个字符的比较 将二进制转换为十进制数 #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char *num = "1111"; int a = strlen(num); printf("the a is %d\\n",a); int numa = 0; int numb = 0; for(int i = a-1;i>=0 ;i++) { if(*num == '1') { numa = 2; for(int j = i-1;j > 0;j--) { numa = numa*2; } if(i == 0) { numa = 1; } numb = numa + numb; printf("the i is %d and numb us %d\\n",i,numb); num++; } } printf("the numb is %d \\n",numb); }头文件:#include <math.h> pow() 函数用来求 x 的 y 次幂(次方),其原型为: double pow(double x, double y); pow()用来计算以x 为底的 y 次方值,然后将结果返回。设返回值为 ret,则 ret = xy。 可能导致错误的情况:
- 如果底数 x 为负数并且指数 y 不是整数,将会导致 domain error 错误。
- 如果底数 x 和指数 y 都是 0,可能会导致 domain error 错误,也可能没有;这跟库的实现有关。
- 如果底数 x 是 0,指数 y 是负数,可能会导致 domain error 或 pole error 错误,也可能没有;这跟库的实现有关。
- 如果返回值 ret 太大或者太小,将会导致 range error 错误。
错误代码:
- 如果发生 domain error 错误,那么全局变量 errno 将被设置为 EDOM;
- 如果发生 pole error 或 range error 错误,那么全局变量 errno 将被设置为 ERANGE。
注意,使用 GCC 编译时请加入-lm。
本文标签: 二进制数
版权声明:本文标题:二进制数之间的相互转换 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686574329a83472.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论