关于十进制和十六进制的问题????????????????????????????????????????????????
在vc中有没有表示十六进制的变量??????????????????????
另外如何对十进制和十六进制进行相互转换??????????????????

解决方案 »

  1.   

    #include "stdafx.h"
    #include <iostream>
    using namespace std;void main(void)
    {
    int i = 0;
    cin >> i;
    cout.setf(ios_base::showbase); //显示前缀 cout.setf(ios_base::oct, ios_base::basefield); //八进制
    cout << i << endl;

    cout.setf(ios_base::dec, ios_base::basefield); //十进制
    cout << i << endl;

    cout.setf(ios_base::hex, ios_base::basefield); //十六进制
    cout << i << endl; cout << endl;
    system("PAUSE");
    }
      

  2.   

    没有十六进制变量这一说,因为实际数据的表示都是二进制的,VC中十六进制可以使用前缀0X表示如
    int y = 0X019F;不知道你这只的互相转换什么意思?
      

  3.   

    内部都是二进制,或者还可能有BCD有时候,除非是字符串,否则没有区别!
      

  4.   

    为什么要转换?是显示吗?
    DWORD dwValue = 10000;
    CString str;
    str.Format("%d" , dwValue);//10进制显示
    str.Format("%x" , dwValue);//16进制显示
      

  5.   

    jimsleon说的是,不存在转化,输出时有专门的格式化串。
      

  6.   

    为什么要转换?是显示吗?我也碰到了同样的问题,用jimsleon的方式已经显示出来了,但是我是在读一个文件的内容,它定义用十六进制表示04000000h表示文件版本号"4.0.0",可是我现在显示出的是4000,怎么把小数点加上?
    帮帮忙吧!
      

  7.   

    另外怎样把用户输的十六制转成十进制????????????????????????
    例如: 用户在  edit 控件输入了 FA 的十六进制数,如何转成十进制????????????
      

  8.   

    另外怎样把用户输的十六制转成十进制????????????????????????
    例如: 用户在  edit 控件输入了 FA 的十六进制数,如何转成十进制????????????没有人会吗??
      

  9.   

    edit控件得到的都是字符串吧,你得自己写一个函数处理
      

  10.   

    RE:
    另外怎样把用户输的十六制转成十进制????????????????????????
    例如: 用户在  edit 控件输入了 FA 的十六进制数,如何转成十进制????????????
    没有人会吗??
    ////////////////////////////////////////////////////////////////////////
    哈哈,我来告诉你。就用这个库函数:
    Convert strings to a long-integer value:
    long strtol( const char *nptr, char **endptr, int base );这是RUN-TIME LIBRARY里的函数,可以是任何进制。用MSDN差一下,你就全明白了。
      

  11.   

    16制字符串转数字:
    CString szNum( "FA" ) ;//或:CString szNum( "0xFA" ) ;
    int n ;
    sscanf( szNum, "%X", &n ) ;
    return n ;
    10进制字符串转数字:
    n = _ttoi( szNum ) ;
      

  12.   

    int nValue = 200;
    CString str;
    str.Format("%d" , nValue );//10进制显示
    str.Format("%x" , nValue );//16进制显示
      

  13.   

    参见msdn上的例子
    Example /* ITOA.C: This program converts integers of various
     * sizes to strings in various radixes.
     */#include <stdlib.h>
    #include <stdio.h>void main( void )
    {
       char buffer[20];
       int  i = 3445;
       long l = -344115L;
       unsigned long ul = 1234567890UL;   _itoa( i, buffer, 10 );
       printf( "String of integer %d (radix 10): %s\n", i, buffer );
       _itoa( i, buffer, 16 );
       printf( "String of integer %d (radix 16): 0x%s\n", i, buffer );
       _itoa( i, buffer, 2  );
       printf( "String of integer %d (radix 2): %s\n", i, buffer );   _ltoa( l, buffer, 16 );
       printf( "String of long int %ld (radix 16): 0x%s\n", l, 
                                                        buffer );   _ultoa( ul, buffer, 16 );
       printf( "String of unsigned long %lu (radix 16): 0x%s\n", ul,
                                                        buffer );
    }
    OutputString of integer 3445 (radix 10): 3445
    String of integer 3445 (radix 16): 0xd75
    String of integer 3445 (radix 2): 110101110101
    String of long int -344115 (radix 16): 0xfffabfcd
    String of unsigned long 1234567890 (radix 16): 0x499602d2