最新免费av在线观看,亚洲综合一区成人在线,中文字幕精品无码一区二区三区,中文人妻av高清一区二区,中文字幕乱偷无码av先锋

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

請教一個關(guān)于char和int數(shù)據(jù)的問題

作者:lzb7198047 欄目:單片機
請教一個關(guān)于CHAR和int數(shù)據(jù)的問題
本人在有兩個unsigned CHAR變量,想吧他們整合到一個unsigned int中去,請問,有C如何編寫,對速度有一定的要求,本人用KEIL 2編譯器,AT89C52單片機

2樓: >>參與討論
djc001
用指針,強制類型轉(zhuǎn)換
 
3樓: >>參與討論
isoar
union
 
4樓: >>參與討論
icecut
注意
你用調(diào)試-顯示匯編代碼
看看他們的編譯效果,然后采取算法盡量用移位和邏輯運算這樣比較快

5樓: >>參與討論
fjhcpu
位移加強制類型加強制類型轉(zhuǎn)換
 
6樓: >>參與討論
lzb7198047
請教
我曾用過一個方法,但編譯器總是報錯:
int p;
CHAR a,b;
(CHAR *)&p=a;
(CHAR *)&p+1=b;
哪位能幫我想想,可能是錯在什么地方?

7樓: >>參與討論
taoest
error
int p;
CHAR a,b;
*(CHAR *)&p=a;
*(((CHAR *)&p)+1)=b;
地址=數(shù)值?哈哈

* - 本貼最后修改時間:2005-9-22 21:13:39 修改者:taoest

8樓: >>參與討論
zizzfish
用聯(lián)合
 
9樓: >>參與討論
PandaFeng
也可以這樣
typedef unsigned int UINT16;
#define MAKEWORD(low,high)  (UINT16) ( (UINT16)(high)<<8 | (low) )

{
  UINT16 p;
  CHAR a,b;
  a = 1;
  b = 2;
  p = MAKEWORD(a,b);

}

* - 本貼最后修改時間:2005-9-22 22:27:33 修改者:PandaFeng

10樓: >>參與討論
dandangl
直接強制類型轉(zhuǎn)換不行么?
 
11樓: >>參與討論
gwnpeter
union!!!!!
 
12樓: >>參與討論
道源
參考一下
uint uchar2_to_uint(uchar x,uchar y)//把X和Y合并為一個unsigned int;
{
    data uint z;
    z=(uint) x;
    z=z<<8;//把x移動到高字節(jié)
    z=z|y;//把y或到低字節(jié)
    return(z);
}
*********************************************
  1433: uint uchar2_to_uint(uchar x,uchar y)//把X和Y合并為一個unsigned int;
  1434: {
  1435:         data uint z;
  1436:         z=(uint) x;
C:0x08DB    AB07     MOV      R3,0x07
C:0x08DD    7A00     MOV      R2,#0x00
  1437:         z=z<<8;//把x移動到高字節(jié)
C:0x08DF    EB       MOV      A,R3
C:0x08E0    7B00     MOV      R3,#0x00
C:0x08E2    FA       MOV      R2,A
  1438:         z=z|y;//把y或到低字節(jié)
C:0x08E3    E4       CLR      A
C:0x08E4    ED       MOV      A,R5
C:0x08E5    FB       MOV      R3,A
  1439:         return(z);
C:0x08E6    AE02     MOV      R6,0x02
C:0x08E8    FF       MOV      R7,A
  1440: }
C:0x08E9    22       RET      

* - 本貼最后修改時間:2005-9-23 13:04:45 修改者:道源

13樓: >>參與討論
阿西西里
union很占資源
 

14樓: >>參與討論
dudongdao
最簡便快速的方法
    在定義a和b的時候挨在一起,這樣編譯器會分配兩個連續(xù)的地址給他們:
          unsigned CHAR a;
          unsigned CHAR b;
在用的時候比如   unsigned int p;  想把a,b的直給p
        p=(int)a;就可以了~~~


15樓: >>參與討論
yanfengzhu
有多種方法
如:uchar a, b;
    uint c = (uint)a << 8 | b;

或者:
    uchar data a, b, *pc;
    uint *pi;
    pc = pi;
    *pc++ = a;
    *pc = b;

fggg

16樓: >>參與討論
computer00
我也來搞一下,
unsigned int x;
unsigned CHAR a,b;

((unsigned CHAR *)&x)[0]=a;   //x 高字節(jié)
((unsigned CHAR *)&x)[1]=b;   //x 低字節(jié)

17樓: >>參與討論
yubaihuan
直接用(uint)
方法很多的

18樓: >>參與討論
bolshie
下面的代碼將a,b合并成一個值
/*
    下面的代碼將a,b合并成一個值
    在TC20中運行結(jié)果為:
3909
450
451
452
454
455
459

*/
#include <stdio.h>

unsigned CHAR a;
unsigned int c;
unsigned CHAR d;
unsigned CHAR b;
LONG    e;
unsigned CHAR f;


int *p;
int    main()
{
    a = 0x09;
/*    int c = 0x00;*/
    c = 0x00;
    d = 0x29;
    b = 0x39;
    p=(int *) &a;

    printf("%x \n", *p);
    printf("%x \n", &a);
    printf("%x \n", &b);
    printf("%x \n", &c);
    printf("%x \n", &d);
    printf("%x \n", &e);
    printf("%x \n", &f);
    getch();
}

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
手動旋轉(zhuǎn)編碼器的正確計數(shù)
51通過i2c配置ov7120,有人做過嗎?
請教關(guān)于keil c
幫忙來分析分析這個東東
SyncMos  SM8952 是哪家的?
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 www.udpf.com.cn 浙ICP證030469號