精华内容
下载资源
问答
  • 众所周知, 内存地址空间是用16进制的数据表示, 如0x8049324, 那为什么需要用十六进制表示呢? 十六进制的意义何在?   编程中,我们常用的还是10进制.毕竟C/C++是高级语言。 比如:int a = 100,b = 99; ...

    众所周知, 内存地址空间是用16进制的数据表示, 如0x8049324, 那为什么需要用十六进制表示呢? 十六进制的意义何在?

     

    编程中,我们常用的还是10进制.毕竟C/C++是高级语言。   

    比如:int a = 100,b = 99;   

    不过,由于数据在计算机中的表示,最终以二进制的形式存在,所以有时候使用二进制,可以更直观地解决 问题。但二进制数太长了。比如int 类型占用4个字节,32位。比如100,用int类型的二进制数表达将是:   

    0000 0000 0000 0000 0110 0100   

    面对这么长的数进行思考或操作,没有人会喜欢。因此,C,C++ 没有提供在代码直接写二进制数的方法。用16进制或8进制可以解决这个问题。因为,进制越大,数的表达长度也就越短。

     

    不过,为什么偏偏是16或8进制,而不其它的,诸如9或20进制呢?2、8、16,分别是2的1次方,3次方,4次方。这一点使得三种进制之间可以非常直接地互相转换。8进制或16进制缩短了二进制数,但保持了二进制数的表达特点。
     

    十六进制的意义:
    1.用于计算机领域的一种重要的数制   

    2.对计算机理论的描述,计算机硬件电路的设计都是很有益的。比如逻辑电路设计中,既要考虑功能的完备,还要考虑用尽可能少的硬件,十六进制就能起到一些理论分析的作用。比如四位二进制电路,最多就是十六种状态,也就是一种十六进制形式,只有这十六种状态都被用上了或者尽可能多的被用上,硬件资源才发挥了尽可能大的作用。   

    3.十六进制更简短,因为换算的时候一位16进制数可以顶4位2进制数。

     

    十六进制的表示:
    C语言、Shell、Python语言及其他相近的语言使用字首“0x”,例如“0x5A3”。开头的“0”令解析器更易辨认数,而“x”则代表十六进制(就如“O”代表八进制)。在“0x”中的“x”可以大写或小写。

     

    然后再说内存:

    一个内存地址存着一个对应的值, 内存就相当于(addr,val)的大hash表,c语句的语义基本就是改变hash值。

    如 int i = 3; 
    假设 i的内存地址为 0x8049320 ,那么这句话的语义是0x8049320 = 3,经过i = 3后,i为(0x8049320,3)

    int b = i;
    假设 b的内存地址为 0x8049324 ,那么这句话的语义是0x8049324 = i对应的val = 3,此时b为(0x8049324,3)


    参考: 

    十六进制
    http://baike.baidu.com/view/230306.htm

    理解C指针: 一个内存地址对应着一个值 
    http://www.cppblog.com/hex108/archive/2011/06/18/124234.html

    作者:BobLiu 
    邮箱:lzd_ren@hotmail.com
    出处:http://www.cnblogs.com/liuzhendong
    本文版权归作者所有,欢迎转载,未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

    展开全文
  • 浮点数转十六进制,实用!!!

    千次阅读 2019-06-22 18:26:38
    浮点转十六进制 函数如下: /*作用:浮点数---转---十六进制 */ union fnum { long int m; float f; }; 然后需要在引用的函数内声明共用体比如: union fnum num; 用法:共用体是将 多个成员变量共用一个...

    浮点转十六进制 函数如下:

    /*作用:浮点数---转---十六进制 */

    union fnum

    {

    long int m;

    float f;

    };

     

     

    然后需要在引用的函数内声明共用体比如:

    union fnum num;

    用法:共用体是将 多个成员变量共用一个地址,并且同一时刻只允许1个成员变量被赋值,当某个成员变量修改后,其他的成员立刻改变,

    比如:num.f=6.91;那么num.m=0x40DD1EB8;

    当num.f=6.0时,另一个成员变量也改变num.m=40C00000

    因为,单片机的十进制和十六进制都可以进行直接计算,所以用以上办法就可以实现浮点数转十六进制.

    通俗的讲:共用体就像一个容器,成员变量就是不同形状的容器出口,当我们把1个圆形的物体放进去,如果这时我们像要一个方形的物体,那么就从方形的出口将物体取出,就得到方形了,(就像做蛋糕,挤奶油的时候 有五角星形的/三角形/大的/小的 出口模具,想要得到什么形状的奶油,就用什么样的出口模具)

    同理,我们要浮点转十六进制,就把浮点放进共用体(num.f=6.91),然后从整形取出( Rec=num.m )  

    这样就把浮点数 转换成了 十六进制的数  存到了Rec这个变量中了

    这里的Rec是我定义32位的1个变量,也可以叫啊猫啊狗,只要是32位就行,

    细节问题:

    因为浮点数转成十六进制后,通常都是32位数据,所以我们在取出整形数的时候要 用一个32位的变量(long int,或者u32 ) 去存.

     

    /*-------------------下面的可以不看-----------------*/

     

     

    2. 共用体和结构体的区别

      共用体和结构体有下列区别:

      1. 共用体和结构体都是由多个不同的数据类型成员组成,

      但在任何同一时刻, 共用体只存放了一个被选中的成员, 而结构体的所有成员都存在。

      2. 对于共用体的不同成员赋值, 将会对其它成员重写, 原来成员的值就不存在了,

      而对于结构体的不同成员赋值是互不影响的。 另外要注意的是,


    下面是串口接收浮点数的讲解

    计算串口接收到的浮点数:

    我们通常在接收到串口的数字时, 基本上都是文本类型的数字, 并且是一位一位的文本,

    比如6.19就是 ‘6’, ’.’ , ’1’ , ’9’

    我们将它重新变为6.19需要进行一下操作:

    Arr[]={‘6’,’.’,’1’,’9’}

    1. 所有文本类型的数字只有 减零 之后才可以进行计算,否则是文本型.

      Arr[0]-‘0’;

    2. 特别注意

     

    sum_num= (float)(arr[6]-'0')+

    (float)(arr[8]-'0')/10 +(float)(arr[9]-'0')/ 100;

    在计算的时候,小数部分要转换成 小数,然后进行相加,

    注意的是 在(float) (arr[8]-'0')/10的时候, 前面要先强制装换成(float)之后 才可以/10,这样才是把 1变成0.1,

    如果在/10之前 没有(float)的话,意味着取10的倍数,

    如果是 1/10,不加(float),那就等于0;最后相加就等于6.00000;

    正确如下:

    3. 注意细节:

    成功将Arr[]={‘6’,’.’,’1’,’9’}

    组合成sum_num =6.19之后, 在进行判断sum_num时:

    if(sum_num == 62.91f) { LED1=0; }

    注意这里的62.91后面加f,如果不加会报警告:

    :单精度操作数隐式转换为双精度

    当if(sum_num == 62.91) { LED1=0; }

    这里的sum_num是浮点型,而62.91默认是双精度类型的;

    当2个不同类型的变量 相加减时,会将二者都转换成较大一方的类型,

    所以 浮点数 和 双精度进行判断时:浮点数会被转换成双精度.所以会报警告,告诉你这里进行了这样的操作.

    当if(sum_num == 62.91f) { LED1=0; }这里的62.91f

    是将62.91转换成浮点数

    浮点数 和 浮点数进行判断 或者 计算,并不会转换成双精度,警告自然没了

    展开全文
  • 十进制数520,转十六进制通过520的二进制1000001000没四位合成一位应该是0x208 字符常量由一对单引号括起来,比如‘a’就是字符常量。在计算机内部,将这个字符序列解释成小数字。输出的时候这些小数字解释成对应...

    1.通用环境

    Java源代码保存在扩展名为(.java)文件中。本地编译器javac编译程序程序,并生成包含字节码的(.class)文件。Java字节码表示可移植的中间语言,通过运行java解释器来解释字节码。解释器也称为虚拟机(Virtual Machine)

    Java程序的输入可以是下面的任何一种方式:

    • 终端输入,这种输入为标准输入。
    • 在调用虚拟机时其他参数——命令行参数(command-line argument)。
    • GUI组件
    • 文件

    对指定程序选项而言命令行参数特别重要。

    总结:javac编译.java文件并生成包含字节码的.class文件。Java调用Java解释器(解释器也称为虚拟机)

    2.最基本的程序

    注释:Java的三种注解格式

    第一种是从C继承的,注释(/**/

    例如:

    /*
    This is a two-line comment
    *

    第二种格式是从C++继承的,注释(//

    例如:

    // First program
    // MW, 5/1/10
    
    public class FirstProgram{
        public static void main(String [] args){
           System.out.println("Is there anybody out there?");
        }
    }

    第三种格式是(/**  注释里的内容 */) ,这种格式可以为Javadoc实用程序提供信息,使用这些使用程序可以将注释生成文件。

    总结:注释使代码的可读性增强。Java有三种格式的注释(/**/、//和/***/)。

    3.基本类型

    Java的8种基本类型
    基本类型
    基本类型存储类型取值范围
    byte8-bit 整数-128() ~ 127(2的7次方)
    short16-bit 整数-32768 ~ 32767(2的15次方)
    int32-bit 整数-2147483648 ~ 2147483647(2的31次方)
    long64-bit 整数-2的63次方 ~ 2的63次方 - 1
    float32-bit 浮点数6位有效位(10的-46次方,10的38次方)
    double64-bit 浮点数15位的有效位(10的-324次方,10的308次方)
    charUnicode 字符 
    booleanBooleanfalse 和 true

    总结:Java的基本类型是整型、浮点型、布尔型和字符型。Unicode标准包含了覆盖主要书面语言的3万多个不同的编码字符。

    常量

    整型常量可以由十进制、八进制或者十六进制表示法来表示。

    • 八进制表示法以0开始
    • 十六进制表示法以0x或者0X开始

    十进制、二进制、八进制和十六进制之间的转换。我们可以通过二进制为基础对其进行转换。

    • 十进制数520,转化为二进制为 1000001000
    • 十进制数520,转八进制通过520的二进制1000001000每三位合成一位应该是01010
    • 十进制数520,转十六进制通过520的二进制1000001000没四位合成一位应该是0x208

    字符常量由一对单引号括起来,比如‘a’就是字符常量。在计算机内部,将这个字符序列解释成小数字。输出的时候这些小数字解释成对应的字符。

    字符串常量是由双引号括起来的字符序列组成,比如“hello”就是字符串常量。

    使用转译序列来表示特定的字符常量

    总结:整型常量可以用十进制、八进制和十六进制表示法来表示。字符常量是由双引号括起来的字符序列。转义序列用来表示特定的字符常量。

    基本类型的声明与初始化

    任何变量都是通过变量名、类型、选项和它的初始值来声明的。

    变量名必须是标识符。表示符只能包括字母、数字和下划线,但不能以数字开头。也不允许使用像int这样的保留字。

    Java区分大小写。

    // 下面是一些生声明的例子
    
    int num;             //默认初始化;
    double minnum = 4.05 //标准初始化;
    int x = 0, num1 = 0; //声明两个实体;
    int num2 = num2;
    

     总结:变量是通过使用表示符命名的。Java区分大小写。

    4.基本运算符

    赋值运算符:= 、+= 、-= 、*= 、和 /=  。

    二元运算符:+ 、- 、* 、/ 和 %。

    一元运算符:定义了包括 - 在内的几个一元运算符。自增和自减分别加1和减1。自增和自减(++和--)。递增和递减有两种形式(前缀自增和后缀自增)。

    类型转换运算符:用于生成新类型的临时实体,优先级比二元运算高。

    double quotient;
    int x = 6;
    int y = 10;
    quotient = (double) x / y;   // 将整型变量x转化为浮点型在运算。

    5.条件语句和循环语句

    关系和相等运算符

    Java的等于运算符是 == 和 !=。计算结果只有true和false。

    关系运算符是:< 、<= 、> 和 >=。

    逻辑运算符:&&、 || 和 !x

    逻辑运算的结果
    xyx&&yx||y!x
    falsefalsefalsefalsetrue
    falsetruefalsetruetrue
    truefalsefalsetruefalse
    truetruetruetruefalse

    if语句

    /* 基本形式
       if(表达式)
         语句
       if—else语句
       if(表达式)
         语句
       else(表达式)
         语句
    */
    if (x != 0)
       System.out.println();
    else
       System.out.println();
    
    

    Java的三种基本循环语句(while 、for 和 do while)

    // 三种语句的语法结构
    while(true||flase){
        语句
    }
    
    for(已初始化的变量; 条件(true||false); 变量的改变 ){
        语句
    }
    
    do{
       语句
    } while(表达式(true||false));

    注意:do while语句保证至少执行一次循环结构。

     

    展开全文
  • 1.Python数据类型 1>数字 1。int 整形 ,long长整型,float 浮点型 ,complex 复数 2>布尔值 真或假 1 或0 3> 字符串 字符串格式化输出 %s 字符串 ; 整数%d ;浮点数 %f 字符串常用功能 1...

    1.Python数据类型

        1>数字

                        1。int 整形   ,long长整型,float 浮点型 ,complex 复数

         2>布尔值    真或假  1 或0

         3> 字符串

                字符串格式化输出   %s 字符串   ; 整数%d  ;浮点数 %f

                字符串常用功能    1:移除空白 2:分割 3:长度  ; 4索引   ;5切片

          4>列表

                创建列表:

                      name_list = [‘alex’, ‘seven’]     或者

                      name_list = list([‘ales’, ‘seven’,'eric’]}

         5>元组

                     不可变列表  创建元组

                    ages =(34,56,45,43,23) 或   ages = tuple((34,34,34,))

          6>字典 无序

    person = {“name”:"mr.wu”,'age':10} 或 person=dict({“name":"mr.wu",'age':18})


    Python入门

       1.三元运算符           result = 值1 if 条件  else 值2

       2. 二进制转16进制   每四进一    1111   -->15

                    16进制  0x 前缀; BH后缀

    bytess  string   转换     ,bytes    decode  转为str     str  encode  转为bytes


    转载于:https://www.cnblogs.com/JC-0527/p/6980185.html

    展开全文
  • 本篇文章只讨论进制转换的一些基本问题。 因为不论是几进制,对于我们初学者来说如果想要深入理解都是不容易的事情,我一个小白也不会理解的很透彻,所以我现在只能把自己对于进制转换的一些想法记下来。
  • /*栈的应用: 1:需求:对于输入的任意一个非负十进制整数,打印输出与其等值的d进制数 2:思路:利用动态栈的后进先出的特性. 3: 步骤: 4:心得与体会: (1):这两天一直在想一个问题,如何才能实现动态栈中的元素...
  • 最近在用mewtocol协议与松下PLC通信,需要将收到的字符串形式的有符号十六进制数字转换成十进制,比如”0000F824”转换成63524,以及将输入的十进制转换成有符号的十六进制字符串。
  • C语言基本数据类型有4种:整形,浮点型,指针,聚合类型(结构体和数组) 嵌入式系统中常用的数据类型及其位宽整理: typedef char INT8;/**< -127~+127 */ typedef unsigned char UINT8;/**< 0~255 */ ...
  • 输入一个0到9、a到z、A到Z的十六进制数,程序输出相应的 十进制数。 思考 java是如何实现读取用户输入char类型的? import java.util.*; public class text { public static void main(String[] args) { System...
  • java中对于进制的转换有很多方式,其中对于常见的基本的二进制 八进制 十进制 十六进制等的转换有对于的包装类实现,不需要通过二外的算法来进行实现,具体如下:首先关于最简单的二进制转换的方法有:十进制转成...
  • 十六进制数形式:Java 中的十六进制常数的表示以 0x 或 0X 开头,如 0x100 表示十进制数 256,-0x16 表示十进制数 -22。 整型(int)常量默认在内存中占 32 位,是具有整数类型的值,当运算过程中所需值超过 32 位...
  • int PrintVal = ;/*按整型输出,默认右对齐*/printf("%d\n",PrintVal);.../*按整形输出,补齐4位的宽度,补齐位为0,默认右对齐*/printf("%04d\n",PrintVal);/*按16进制输出,默认右对齐*/printf("%x\n",Prin...
  • Python输出16进制不带0x补零,整数转16进制,字符串转16进制在开发中,我们偶尔会遇到需要将数据通过控制台打印出来,以检查数据传输的准确性。例如调试服务端刚接到的二进制数据(里面包含很多非可见字符,也就是...
  • 十六进制常量 常量前面加0x作为前缀,十六进制包含的数字0 - 9以及字母A-F,也可以小写形式。 如:num1 = 0x123; 注意:C语言常量当中没有二进制 编写整型常量的时候可以在后面加上符号L或者U修饰,L表示该常量是...
  • 声明long类型常量需要在后面加上L Java语言整形常量的3种表现形式 十进制整数:如12,-15,0 八进制整数:要求以0开头,如012 十六进制数:要求以0x或0X开头,如0x12 注:因为Java中可以使用十六进制方式赋值,因此...
  • 进制换算&位操作

    2021-11-09 17:25:20
    1、负数转换成十六进制过程(补码),以-3为例: 首先转化为二进制 分为3步: a、首先将负数转换为对应的原码 -3的原码为(也就是+3转换成二进制后的字符串): 0000 0000 0000 0000 0000 0000 0000 0011 (多少组取决于...
  • 使用十进制是很自然的事情,但是当构造存储和处理信息的机器是,二进制工作得更好。二值信号能够很容易得被表示、存储和传输。对二值信号进行存储和执行计算的电子电路非常简单和可靠,制造商能够在一个单独的硅片上...
  • 这儿的特殊说明可以简单列举如下: 字符 意义 \n 换行 \b 退格 \0oo 八进制值(o表示一个八进制数字) \xhh 十六进制值(hh表示一个十六进制数字) 上述表格中,我们尤其强调一下八进制值和十六进制值。我们为什么要...
  • 必须是一个整形值,以十六进制的形式返回   Format("this is %X",15);  返回是: this is F  类型讲述完毕,下面介绍格式化 Type 的指令:   [index ":"]  这个要怎么表达呢,看一个例子   Format("this...
  • QT 16进制转10进制负数

    千次阅读 2019-08-28 20:17:39
    问题如下 ...转为uint时,因为不牵扯到负数,转换正常,范围可以是0到0xFFFFFFFF(4,294,967,295),结果值进行类型转换,转换为int类型,就可以把大于0x7FFFFFFF的值转为负数,相信熟记数据基本类型的同学都懂的
  • C语言的整型常量

    2021-05-20 05:30:09
    在C语言程序中,整型常量主要有十进制、八进制和十六进制三种形式。(1)十进制整型常量十进制整型常量用到的数字有0~9。例如32767、65535、0等。整型常量开头数字不能为0。(2)八进制整型常量八进制整常数必须以0开头...
  • C语言整型数据

    2021-08-03 20:05:21
    C语言整型数据整型常量的表示方法整型变量整型变量的定义 整型常量的表示方法 整型常量就是通常的整数,包括正整数、负整数和0,其数据类型显然是整型。除此之外,整型常量包括短整型、长整型和无...十六进制整数的书写
  • 测验3: 基本数据类型 (第3周)单项选择题1、pow(x, 0.5)能够计算x的平方根,计算负数的平方根将产生:A、无输出B、程序崩溃C、复数D、ValueError错误正确答案 Cpow(-1,0.5)(6.123233995736766e-17+1j)2、以下关于字符...
  • 整形常量就是整常数,在c语言中,使用的整常数有八进制,十进制和十六进制三种1)十进制常数:十进制常数没有前缀,其数码为0~9。以下各数是合法的十进制整常数:237、-568、65535、1627;以下各数不是合法的十进制整...
  • Java中的二进制基本的位运算二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹...
  • python的文件类型:类型(type),空对象(none),...python支持的数据类型:整形:51,548,0,-465498长整型:1484165151L布尔型:ture和flase浮点型:1.222,3.14e-2复数:1+5j,2.23-0.255j复数的内建属性:Real...
  • Python的基本数值类型

    2020-11-24 23:33:13
    返回值是一个字符串 >>> hex(0b10)# 二进制转十六进制 '0x2' >>> hex(0o10)# 八进制转十六进制 '0x8' >>> hex(10)# 十进制转十六进制 '0xa' float浮点数 Python中浮点数的表示可以分为两种,一种是数学表示法,一种...
  • 十六进制表示法:介绍了十六进制的产生和十六进制、十进制、二进制之间的相互转换规律 字数据大小:介绍了在不同机器和编译器中,数据类型数据在内存中所占的大小 寻址和字节顺序 : 介绍了寻址方法和字节顺序(小...
  • 整型常量·整型常量即为整型常数,可用十进制、八进制和十六进制3种形式表示。·十进制整型常量由0~9的数字组成,没有前缀,不能以0开始,没有小数部分。如:-123、0、456等。·八进制整型常量以0为前缀,其后由0~...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,586
精华内容 3,834
关键字:

十六进制基本整形