Làm thế nào tôi có thể nhận được mỗi byte của 32-bit điểm bằng cách sử dụng C

B

BabyTiger

Guest
Tôi cần phải nhận được mỗi byte của 32-bit điểm biến bằng cách sử dụng lập trình C
Ex.Biến Z là điểm nổi đã có 4 byts (BYTE0: BYTE1: BYTE2: BYTE3)
Tôi cần phải đặt
BYTE0 vào một nơi là unsigned char
BYTE1 vào B mà B là unsigned char
BYTE2 thành C mà C là unsigned char
BYTE3 vào D mà D là unsigned char

Xin hãy giúp tôi, tôi cần phải viết trong C lập trình.

Lời chúc mừng tốt đẹp nhất

 
Ở đây bạn đi.

Mã số:

# include <stdio.h>

# include <conio.h>void main (void)

(

float x;

unsigned char byte [4];x = 1087.9845F;* (float *) (& byte [0]) = * (float *) (& x);printf ( "B0 =% x \ nB1 =% x \ NB2 =% x \ nB3 =% x \ n", byte [0], byte [1], byte [2], byte [3]);

)
 
Sử dụng ĐOÀN

main ()
(
Công đoàn
(Unsigned char ch [4];
float d;
) s;

sd = 0xffffffffh;

)

bạn làm như trên
các BYTE0 của biến d sẽ được vào các ch [0]
các BYTE1 của biến d sẽ được thành ch [1]
các BYTE2 của biến d sẽ được vào các ch [2]
các BYTE3 của biến d sẽ được vào các ch [3]

 
Điều này sẽ làm việc:

//**********************************
# include <stdio.h>
# include <stdlib.h>

int main (int argc, char * argv [])
(

float f = 3332,54543;
unsigned long * l;
unsigned char * p;

l = (unsigned long *) &f;
p = (unsigned char *) &f;

printf ( "Ở đây chúng là:% lx,% hx, hx%,% hx, hx% \ n", * l, * p, * (p 1), * (p 2), * (p 3 ));

hệ thống ( "PAUSE");
return 0;
)

//*************************************

Đây là đầu ra:

Ở đây chúng là: 455048ba, ba, 48, 50, 45Tôi đã sử dụng các trình biên dịch devc.

 

Welcome to EDABoard.com

Sponsor

Back
Top