有符号十六进制转十进制 c++
来源:互联网 发布:犀牛o2o源码 编辑:程序博客网 时间:2024/06/06 01:59
实践中遇到有符号十六进制数需要转化成十进制数,编程如下,如有疏漏,恳请指出。
int hextode(char* hex){ if(hex ==NULL) return 0; char binary[17]={0};//放二进制字符串 char* hexstr="006C";//一个16进制字符串 //Convert strings to a long-integer value. long i32=strtol(hexstr,NULL,16);//读取16进制的值 cout<<i32<<endl; int toint = 0; int ratio = 1; if(hexstr[0]>'8') { cout<<"此数为负"<<endl; //Converts an integer to a string itoa(i32,binary,2);/*输出为二进制*/ for(int i=0;i<16;i++) cout<<binary[i]; cout<<endl; cout<<' '; for(int i=1;i<16;i++) //除第一位外取反 { binary[i] ='0'+!(binary[i]-'0'); cout<<binary[i]; } cout<<endl; int nTakeover = 0; bool isoverflow = false; for(int i=15;i>=0;i--) //二进制加1 { int nsum = binary[i]-'0'+nTakeover; //每位加上进位 if(i==15) nsum++; if(nsum==2) { if(i == 0) isoverflow = true; else { nsum-=2; nTakeover = 1; binary[i] = '0'+nsum; } } else { binary[i] = '0'+nsum; break; } } for(int i=0;i<16;i++) //取反加一后 { cout<<binary[i]; } cout<<endl; for(int j=15;j>0;--j) { toint = toint+ (binary[j]-'0')*ratio; ratio=ratio*2; } toint = toint*(-1); cout<<toint<<endl; return toint; } else { cout<<"此数为正"<<endl; toint= i32; cout<<toint<<endl; return toint; }}
0 0
- 有符号十六进制转十进制 c++
- 十进制有符号数转十六进制,十六进制高低位再转为十进制
- 有符号十六进制转换为十进制
- 十六进制转十进制 - C
- 十进制转十六进制 - C
- 将十六进制数据转换成有符号十进制数
- c 十进制数转十六进制
- 使用无符号右移-&-栈 实现 十进制转十六进制
- c#二进制、十进制、十六进制互转
- 【算法C++】十进制字符串转十六进制字符串
- 十进制转十六进制的C语言实现
- C实例---二、八、十六进制转十进制
- 十进制转十六进制的C实现
- 用C语言,如何写十进制转换十六进制的程序,要注意十六进制有ABCDEF。
- Bailian4003 十六进制转十进制【十六进制】
- 十六进制转十进制
- 十六进制转十进制
- 十进制转十六进制
- binbinyang---Android自动检测更新功能的实现--杨彬
- ACM2-1002
- JS闭包及内存泄露
- 易语言学习第十一课
- CString用法
- 有符号十六进制转十进制 c++
- [BZOJ1467]Pku3243 clever Y(扩展BSGS)
- 字符串反转引发的char str[]="abc"和char *str="abc"思考
- $(document).ready()
- OpenCv学习笔记---OpenCv中支持向量机模块SVM------源代码分析
- 隐形变量赋值,隐藏参数,隐藏传参
- 2016sdau课程练习专题二 1020
- 345. Reverse Vowels of a String 【E】
- mysql一些实用的语句