`
qimo601
  • 浏览: 3438527 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

C++中如何表示2进制,8进制、16进制变量

阅读更多


1、C和C++都没有提供二进制数的表达方法。

2、C,C++语言中,如何表达一个八进制数呢

     如果这个数是 876,我们可以断定它不是八进制数,因为八进制数中不可能出7以上的阿拉伯数字。但如果这个数是123、是567,或12345670,那么它是八进制数还是10进制数,都有可能。

     所以,C,C++规定,一个数如果要指明它采用八进制,必须在它前面加上一个0,如:123是十进制,但0123则表示采用八进制。


     int 0123;

     这就是八进制数在C、C++中的表达方法。但是有一个例外就是转意符'\'。

     因为C,C++规定不允许使用斜杠加10进制数来表示字符,所以 :

 


'?' //ASCII值是63
'\077' //是8进制表示'?',0可以省略,因为C,C++规定不允许使用斜杠加10进制数来表示字符
'\0x3F' //是16进制表示'?'
 


3、 C,C++规定,16进制数必须以 0x开头


      int 0x15A

      其中的x也也不区分大小写。(注意:0x中的0是数字0,而不是字母o)。




注:

1) 8进制和16进制只能用达无符号的正整数,如果你在代码中里:-078,或者写:-0xF2,C,C++并不把它当成一个负数。

2) Qt中把十进制整型值转换成16进制 的字符串方法。

      int a = 63;

     QString s = QString::number(a, 16);                   // s == "3f"

     QString t = QString::number(a, 16).toUpper();     // t == "3F"

3) QString 存储16进制值

 

  1. //将字符串以16进制形式输出  
  2. QString cmd = 0x0a;  
  3. qDebug() <<" cmd:"<< cmd.toAscii().toHex();

 

4)QString 按照字符串表面格式 转换成16进制

 

     QString str = "FF";
     bool ok;
     int hex = str.toInt(&ok, 16);       // hex == 255, ok == true 0xFF
     int dec = str.toInt(&ok, 10);       // dec == 0, ok == false
 

4) QByteArray 存储16进制值 

 

static const char mydata[] = {
		0x00, 0x00, 0x03, 0x84, 0x78, 0x9c, 0x3b, 0x76,
		0xec, 0x18, 0xc3, 0x31, 0x0a, 0xf1, 0xcc, 0x99,
		0x6d, 0x5b
	};

	QByteArray bd = QByteArray::fromRawData(mydata, sizeof(mydata));
	qDebug() <<"bd.data:" <<bd.data();
	qDebug() <<"bd.toHex():"<<bd.toHex();//输出16进制值
 

5) QChar 存储16进制值,打印

 

 

QChar c = 0x0A;

QByteArray array;
array.append(c);

qDebug() << array.toHex();//结果是"0a"

 6)char* 存储16进制,打印

 

char c[] = {0x0A,0x0B,'\0'};

QByteArray array(c);

qDebug() << array.toHex();//结果 "0a0b"

 

 

0
0
分享到:
评论

相关推荐

    c++16进制string转10进制string(非用数值型中间变量转换,无溢出问题)

    这样会导致一个问题就是溢出,当十六进制表示的十进制很大的情况下根本无法转换,遂用一种极为傻瓜但高效的方式,实现了一种16进制字符串(例如“FFFFFF”)转10进制字符串(“16777215”)的方法,非常好用。

    c++实现不同进制的转换

    在C++编程中,实现不同进制之间的转换是一项基本技能,尤其对于计算机科学的学生和开发者来说至关重要。本文将深入探讨如何使用C++实现二进制、八进制、十进制和十六进制之间的转换。 1. **进制转换基础** 在不同...

    16进制与字符串、字节数组之间的转换

    根据给定的信息,本文将详细解释16进制与字符串、字节数组之间的转换方法,并结合提供的C#代码示例进行深入分析。 ### 一、16进制与整数之间的转换 #### 1.1 二进制转十六进制 在计算机科学中,经常需要将不同进制...

    十进制整数和十六进制字符串转换

    在计算机科学中,数据的表示形式多种多样,其中常见的有二进制、八进制、十进制和十六进制等。对于数字的处理,程序员经常需要进行不同进制之间的转换。本篇文章将详细介绍如何在C++中实现十进制整数与十六进制字符...

    IEE754的C++转换(将16进制转换成浮点型)

    对于单精度(32位)浮点数,16进制字符串"3F800000"对应的二进制表示是11111111 10000000 00000000 00000000,其中最左边的一位是符号位(0表示正数),接下来的8位是指数,剩余的23位是尾数。 转换过程中,我们...

    破解辅助计算工具10进制16进制转换

    16进制则是基于0到F这16个符号(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F)的计数系统,特别适合表示二进制数据,因为一个16进制位可以表示4个二进制位。 10进制转16进制通常采用的方法是除16取余法,即...

    c++ 10进制转2、8、16进制.docx

    在C++编程语言中,将10进制数转换为其他进制(如2、8、16进制)是一项常见的任务。以下是如何使用C++实现这个功能的详细步骤,以文档标题和描述中提到的转换为例。 首先,我们要了解进制转换的基本原理。任何数字...

    EVC socket(16进制接收发送)

    在EVC socket应用中,数据以16进制形式发送和接收,这意味着程序需要能够将二进制数据转换成16进制字符串进行显示或者读取16进制字符串并转化为二进制数据进行传输。这通常涉及到位运算和字符编码,如ASCII或...

    c++ 10进制转2、8、16进制.pdf

    在C++编程语言中,将10进制数转换为其他进制,如2(二进制)、8(八进制)和16(十六进制),是常见的操作。这个程序示例展示了如何实现这样的转换。以下是代码的详细解释: 首先,我们引入必要的头文件: ```cpp #...

    16进制Edit控件

    在实现这个16进制Edit控件的过程中,开发者可能需要覆盖CEdit类的一些关键函数,如OnChar、OnKeyDown等,以限制输入的字符范围只包含0-9和A-F(或a-f),并确保输入的数据在十六进制表示下是合法的。此外,控件可能...

    二进制、八进制、十六进制转换.doc

    八进制基于2的3次方(8=2^3),十六进制基于2的4次方(16=2^4)。这两个基数与二进制有直接的对应关系,使得转换更加简单和直观。例如,八进制的每一位可以直接代表3位二进制,十六进制的每一位则代表4位二进制。 ...

    10进制转2到16进制的cpp文件

    ### 10进制转2到16进制的C++程序分析 #### 知识点一:进制转换的基本概念 在计算机科学中,不同的进制被广泛应用于表示数值。其中,十进制(Base-10)是我们日常生活中最常用的数字系统,而二进制(Base-2)、八...

    16进制如何转换成float型数据

    16进制是一种常用的数制表示方法,由0-9和A-F组成,广泛应用于计算机系统中。而浮点数是计算机科学中的一个重要概念,用于表示实数,可以精确到小数点后很多位。 在串口通信中,下位机通常会发送16进制形式的数据给...

    C++十六进制宏的用法详解

    流行的用法:用二进制的每一位代表一种状态。 001,010,100这样就表示三种状态。 通过或|运算就可以组合各种状态。 001|010=011 001|010|100=111 通过与&运算可以去除某种状态。 111&001=110 可以定义这样的宏组合成...

    (栈在进制转换中的应用)

    在这个过程中,我们定义了一个名为`stack`的结构体,其中包含一个整型数组`data`和一个表示栈顶位置的整型变量`top`。初始化栈(initstack)时,将`top`设置为0,表示栈为空。压入操作(push)会检查栈是否已满...

    报文传输中的进制转换(十六进制、二进制)

    同时,十六进制常用于表示内存地址、颜色代码或编程中的变量值,因为它比二进制更紧凑且易读。 提供的压缩包文件名列表中,"IntToBin.cpp"、"IntToBin.dsp"、"IntToBin.dsw"、"IntToBin.sln"、"IntToBin.vcproj...

    二进制,八进制,十六进制转换

    补码是正数不变,负数的反码基础上加1,用于在计算机中表示负数,确保加减运算的简便性。 **6.6 通过调试查看变量的值** 在开发过程中,程序员常使用调试工具查看变量的二进制、八进制或十六进制表示,以理解其...

    4字节16进制数转换为float浮点数的原理及Qt算法实现示例

    如果你的项目是Qt项目,可以将这个函数集成到你的代码中,方便地进行16进制数到浮点数的转换。 在实际应用中,这种转换可能涉及到网络通信、数据解析或文件读取等场景,理解这种转换机制对于处理底层数据交换至关...

    C++语言数据2、8、10、16进制相互转换代码

    C++语言数据2、8、10、16进制相互转换代码 C++语言中的数据类型可以分为多种不同的进制系统,包括二进制、八进制、十进制、十六进制等。这些进制系统之间可以相互转换,以满足不同的应用需求。本文将详细介绍C++...

    BCD码转换成16进制

    而十六进制则是基数为16的进位计数制,常用A-F(或a-f)来表示10-15。 ### BCD码与十六进制的转换 #### BCD码转换为十六进制的意义 在计算机系统中,尤其是在低级编程、嵌入式系统以及数据处理领域,BCD码因其...

Global site tag (gtag.js) - Google Analytics