zoukankan      html  css  js  c++  java
  • 进制转换

     1 /*
     2     A-10 B-11 C-12 D-13 E-14 F-15
     3  */
     4 #include <stdio.h>
     5 #include <string.h>
     6 #include <math.h>
     7 struct number{
     8     int sign;   /* 1 --> positive number;
     9                    0 --> negative number;
    10                 */
    11     __int64 num;
    12 };
    13 number change(char str[]){
    14     __int64 tmp=0;
    15     number res;
    16     res.num=0;
    17     int len=strlen(str);
    18     __int64 i,j;
    19     if(str[0]=='+'||str[0]=='-'){
    20         if(str[0]=='+') res.sign=1;
    21         else            res.sign=0;
    22         for(i=1;i<len;++i){
    23             if(str[i]>='0'&&str[i]<='9'){
    24                 tmp=str[i]-'0';
    25             }else tmp=str[i]-'A'+10;
    26             res.num+=tmp*(int)pow(16.0,double(len-1-i));
    27         }
    28     }else{
    29         res.sign=1;
    30         for(i=0;i<len;++i){
    31             if(str[i]>='0'&&str[i]<='9'){
    32                 tmp=str[i]-'0';
    33             }else tmp=str[i]-'A'+10;
    34             res.num+=tmp*(int)pow(16.0,double(len-1-i));
    35         }
    36     }
    37     return res;
    38 }
    39 int change_sign(number a){
    40     if(a.sign==1) return a.num;
    41     else          return 0-a.num;
    42 }
    43 void put_h(int num){
    44     __int64 t,cnt=0;
    45     int tmp[10000];
    46     if(num<0) putchar('-'),num=-num;
    47     do{
    48         tmp[cnt++]=num%16;
    49         num/=16;
    50     }while(num);
    51     while(cnt--&&cnt>=0){
    52         if(tmp[cnt]>9) putchar('A'+tmp[cnt]-10);
    53         else           putchar('0'+tmp[cnt]);
    54     }
    55     putchar('
    ');
    56 
    57 }
    58 int main(){
    59     char a[10000],b[10000];
    60     __int64 A,B;
    61     while(~scanf("%s%s",a,b)){
    62         A=change_sign(change(a));
    63         B=change_sign(change(b));
    64         printf("res=%d
    ",A+B);
    65         put_h(A+B);
    66     }
    67     return 0;
    68 }
  • 相关阅读:
    初识ACM——幸好不用排序
    初识ACM——中文的信仰
    初识ACM——中文的信仰
    初识ACM——九九乘法表
    初识ACM——九九乘法表
    JavaScript 10 作用域
    JavaScript 09 简单的加法计算器
    JavaScript 08 函数
    JavaScript 07 类型转换
    JavaScript 06 基本数据类型
  • 原文地址:https://www.cnblogs.com/symons1992/p/3403610.html
Copyright © 2011-2022 走看看