안녕하세요. 다름이 아니라 현재 1 byte의 정보 패킷을 가지고 있습니다. 이것의 MSB는 부호비트를 의미하고 나머지 7비트는 정수를 표현하고 자 합니다.
하지만 이 1byte의 정보를 가지고 비교를 해야 하는데 문제 가 있어 32비트로 바꾸고 자 합니다.
간단한 형변환으로 가능한지 아니면 바꾸는 함수가 제공되는 지 아니면 함수를 만들어야 하는지. 궁금합니다.
아. 당연히 리눅스로 코딩 중입니다 ^^;
그럼.
32비트 signed 형 변수에 그냥 넣으세요^^;
캐스트하신 후 연산하셔도 될겁니다.
캐스트 연산으로는 되지 않습니다. 1 byte 자체가 현재 저의 프래임에서 -10은 10001010 이며 캐스팅 하기 위해서 -10은 0xf6 인가요..네 11110110 이니까요 제대로 캐스팅 되지 않습니다.
현재 32비트로 확장하는 함수를 만들었는데 이것보다는 그냥 온 값을 2의 보수로 만들어 버려서 캐스팅 하니 제대로 된 값이 나오네요. 그렇게 해결해야 겠습니다 ㅜ.ㅜ
답변 감사합니다.
::::::::::: Easy come, Different go. ::::::::: Http://www.geekstep.org
unsigned에 넣으면 될 텐데요.
캐스트 연산으로는 되지 않습니다. 1 byte 자체가 현재 저의 프래임에서 -10은 10001010 이며 캐스팅 하기 위해서 -10은 0xf6 인가요..네 11110110 이니까요 제대로 캐스팅 되지 않습니다. 현재 32비트로 확장하는 함수를 만들었는데 이것보다는 그냥 온 값을 2의 보수로 만들어 버려서 캐스팅 하니 제대로 된 값이 나오네요. 그렇게 해결해야 겠습니다 ㅜ.ㅜ 답변 감사합니다.
char c = (char) -10; int d = (int)c; assert(-10 == d);
일하는 사람들의 희망 민주노동당 : http://www.kdlp.org 반공 교육의 성과로, 민주주의의 반대가 공산주의(또는 사회주의)라고 생각하는 사람이 많다.
부호-절대값 표현을 쓰시고 있는건가요? 1000000이 -0을 나타내는...
어쨌거나 정수 표현을 따로 만드셨으니 사칙연산과 변환 함수도 직접 만드는 수 밖에 없습니다. 대부분의 언어와 기계어에서는 기본적으로 2의 보수 (어쩌다가 BCD)만을 지원하니깐요.
텍스트 포맷에 대한 자세한 정보
<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]
32비트 signed 형 변수에 그냥 넣으세요^^;캐스트하신 후
32비트 signed 형 변수에 그냥 넣으세요^^;
캐스트하신 후 연산하셔도 될겁니다.
캐스트 연산으로는 되지 않습니다.1 byte 자체가현재 저의 프래
캐스트 연산으로는 되지 않습니다.
1 byte 자체가
현재 저의 프래임에서 -10은 10001010 이며
캐스팅 하기 위해서 -10은 0xf6 인가요..네 11110110 이니까요
제대로 캐스팅 되지 않습니다.
현재 32비트로 확장하는 함수를 만들었는데 이것보다는
그냥 온 값을 2의 보수로 만들어 버려서 캐스팅 하니 제대로 된
값이 나오네요.
그렇게 해결해야 겠습니다 ㅜ.ㅜ
답변 감사합니다.
::::::::::: Easy come, Different go.
::::::::: Http://www.geekstep.org
unsigned에 넣으면 될 텐데요.
unsigned에 넣으면 될 텐데요.
[quote="kksir"]캐스트 연산으로는 되지 않습니다.1 byt
아마도 byte 타입을 unsigned char로 하시는것 같은데요,
그냥 char 타입의 변수에 집어 넣은뒤에 int로 케스팅 하시면 부호값이 유지된 상태로 케스팅됩니다.
이런 방식으로 확장시키는 케스팅은 Intel CPU의 경우 전용 instruction이 있기 때문에 직접 2의 보수로 변환하거나 하는 것 보다 훨씬 빠를겁니다.
일하는 사람들의 희망 민주노동당 : http://www.kdlp.org
반공 교육의 성과로, 민주주의의 반대가 공산주의(또는 사회주의)라고 생각하는 사람이 많다.
부호-절대값 표현을 쓰시고 있는건가요? 1000000이 -0을 나타내는.
부호-절대값 표현을 쓰시고 있는건가요? 1000000이 -0을 나타내는...
어쨌거나 정수 표현을 따로 만드셨으니 사칙연산과 변환 함수도 직접 만드는 수 밖에 없습니다. 대부분의 언어와 기계어에서는 기본적으로 2의 보수 (어쩌다가 BCD)만을 지원하니깐요.
댓글 달기