비트조합함수???

shiny의 이미지

int data;

data = 0x8f;

라고 정의 되었다고 가정하고,

0x8f를 비트열로 나열하면 -> 1 0 0 0 1 1 1 1

0번째 비트와 3번째 비트, 4번째 비트, 7번째 비트를
조합하여 1011 -> 0xb 을
만드는 함수를 짜고 싶습니다
좋은 아이디어 있으신분 답글 달아주시면 정말정말정말 감솨하게씀당~
저도 열뜀히 짜고 있긴한데,,,생각보다 어렵네여~

sangwoo의 이미지

송살 wrote:
int data;

data = 0x8f;

라고 정의 되었다고 가정하고,

0x8f를 비트열로 나열하면 -> 1 0 0 0 1 1 1 1

0번째 비트와 3번째 비트, 4번째 비트, 7번째 비트를
조합하여 1011 -> 0xb 을
만드는 함수를 짜고 싶습니다
좋은 아이디어 있으신분 답글 달아주시면 정말정말정말 감솨하게씀당~
저도 열뜀히 짜고 있긴한데,,,생각보다 어렵네여~

0번째, 3번째, 4번째, 7번째 비트의 각각의 마스크를 만들어서 AND연산 한 뒤에
적절히 pow(2, n) 을 곱해서 더해주면 되지 않을까요?

----
Let's shut up and code.

세벌의 이미지

#include <stdio.h>
int main()
{
  int data= 0x8f;
  int mask= 0x99;
  int r, r2;

  r= data & mask;
  r2= ((r>>4)&0x8) | ((r>>2)&0x4) | ((r>>2)&0x2) | (r&0x1);

  printf("0x%x\n", r2);

  return 0;
}

뭐하는데 쓰시려는 걸까? 숙제는 아니겠죠?

shiny의 이미지

Quote:
적절히 pow(2, n) 을 곱해서 더해주면 되지 않을까요?

pow(2,n) 함수는 머죠??
첨보는 함수라 전혀~ ㅡ,.ㅡ

꿈은 이루어진다.
그렇지 않다면 신이 우리에게 꿈을 꾸게 만들었을 리가 없다.

shiny의 이미지

숙제는 아니구여..걍 프로그램좀 짜볼라했는데 여기서 막혀버리네여 흉흉~

특정어드레스에서 int형 데이터를 최대 256개까지 읽어들여 비트조합을 해야합니다.

몇개안되면 걍 간단히 짤수 있겠는데 연산할게 많다보니 소스가 길어져서...

제 생각엔 이런식으로 하면 괜찮을지 않을까하는데여..

워낙에 초보라 생각하는게 여기까지 밖에......ㅠ,.ㅠ

main()
{
	int data;
	unsigned int *addr;


	data = *addr;
	
	bit_combination(data, 3,2,1,0);
	bit_combination(data, 7,4,2,1);
	bit_combination(data, 7,4,3,0);
}

void bif_combination(int data, char bit3, char bit2, char bit1, char bit0)
{
	연산...
}

여기까지 생각해 봤습니다.....더 생각나는데로 바로 올릴게여~ 많은 관심 부탁드려여~감소ㅏ~

꿈은 이루어진다.
그렇지 않다면 신이 우리에게 꿈을 꾸게 만들었을 리가 없다.

랜덤여신의 이미지

송살 wrote:
Quote:
적절히 pow(2, n) 을 곱해서 더해주면 되지 않을까요?

pow(2,n) 함수는 머죠??
첨보는 함수라 전혀~ ㅡ,.ㅡ

2^n 을 구해줍니다.

math.h 에 있죠.

shiny의 이미지

Quote:
0번째, 3번째, 4번째, 7번째 비트의 각각의 마스크를 만들어서 AND연산 한 뒤에

10001111
& 10011001
---------------
10001001 을 어떻게 1011만들져? 휴~ 난감한거...

Quote:
적절히 pow(2, n) 을 곱해서 더해주면 되지 않을까요?

pow로 적절히 곱해서 더해준다.......연산하려면 뮤쟈게 복잡해지지 않을까여??

흉흉~ 힘들다 힘들오~

나에게 0.0000000001프로의 뇌를 더 활용할 수 있게 도와달라!! 도와달라!!

꿈은 이루어진다.
그렇지 않다면 신이 우리에게 꿈을 꾸게 만들었을 리가 없다.

세벌의 이미지

송살 wrote:
Quote:
0번째, 3번째, 4번째, 7번째 비트의 각각의 마스크를 만들어서 AND연산 한 뒤에

10001111
& 10011001
---------------
10001001 을 어떻게 1011만들져? 휴~ 난감한거...

Quote:
적절히 pow(2, n) 을 곱해서 더해주면 되지 않을까요?

pow로 적절히 곱해서 더해준다.......연산하려면 뮤쟈게 복잡해지지 않을까여??

흉흉~ 힘들다 힘들오~

나에게 0.0000000001프로의 뇌를 더 활용할 수 있게 도와달라!! 도와달라!!


pow 함수는 안 써도 됩니다. 제가 답을 다 가르쳐드렸는데 뭘 고민하시나요? 제가 질문을 잘 못 이해 한 건가요?

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.