-"어떻게 어떤 바이트 비트 교환을 C 프로그램 작성?

K

kukurigu

Guest
방법)는 바이트 (즉, 미러 비트 비트 교환을 C 프로그램 작성?
에는 여러 가지가있습니다하지만 난 한 빨리보고 있어요!

 
내가 테스트하지 않은하지만이게 바로 geneal 생각입니다.작동합니다.int MirrorInt (값)
(

int lastbit = 15;
int 난;

은 (i = 0; 내가 "= lastbit; 난 )에 대한
(
만약 (1 ""난 & & 값)
값 이름 = 값 | | 1 ""(lastbit - 난);
그 밖의
값 이름 = 값 & &! (1 ""(lastbit - 난));)

반환 값;

)

 
Kukurigu 당신에게 무엇을하려고합니다.당신은 바이트 또는 가나의 nibbles 교환시겠습니까 바이트 즉 LSB를 MSB가와 부사장 될 수가 반대하고 싶지도 마찬가지입니다

또한 프로그램 jhbbunch 잘못 될 PLZ 확인해 것

 
난 비트 (예
: 거울) bit7 "-"bit0, bit6 "-"bit1 등등에 대한 역방향 싶어요.

 
내 생각!

코드 :

숯불 리버스 (숯불 n)이 (

n은 n & 0b11110000 ""4 | n & 0b00001111 ""4; / / efghabcd

n은 n & 0b11001100 ""2 | n & 0b00110011 ""2; / / ghefcdab

n은 n & 0b10101010 ""1 | n & 0b01010101 ""1; / / hgfedcba

반환 n;

)

 
단어 전체를 할당 포트 비트 0-7
사용 계수

portword = ~ portword

이 그럼 당신이 원하는 무엇을 약간 밖으로 이동 할 수 단어가 반전됩니다

비트 = (BOOL) (portword ""x)를 / / 여기서 x는 당신이 원하는 비트입니다

 
제목 비트 시퀀스 Reversing로 이동

http://graphics.stanford.edu/ ~ seander / # BitReverseObvious bithacks.html

어쩌면 당신은 좋은 아이디어를 얻을 수있습니다 ..

leomecma

 
만약 당신이 그냥 빨리 좀 봐 최대 테이블 수있습니다 무엇을 원하는 더 나은 방법입니다.하지만 내가 생각하는 8 비트 우리는 이런식으로 "바보"방식으로 바이트 코드를 수있습니다 :

무효 reverse_byte (& 바이트)
(
바이트 b;

b = *;
* = 0;
* = (아침 식사 (1 ""7)) ""7;
* = (아침 식사 (1 ""6)) ""5;
* = (아침 식사 (1 ""5)) ""3;
* = (아침 식사 (1 ""4)) ""1;
* = (아침 식사 (1 ""3)) ""1;
* = (아침 식사 (1 ""2)) ""3;
* = (아침 식사 (1 ""1)) ""5;
* = (아침 식사 (1 ""0)) ""7;

반환;
)

난 이것은 ASM 컴파일러는 간단한 지침에 그것을 최적화할 수있는 작업을 수 있기를 바랍니다.

 
무효 reverse_byte (& 바이트)
가 아니라 일부는 C 레퍼런스 arg와 함께?
내가 아닌은 ANSI C 컴파일러는 8 비트 MCU를위한 작업을 거라고 생각하지 않습니다.

 

Welcome to EDABoard.com

Sponsor

Back
Top