4 바이트 (4 바이트)를 부호없는 정수에 저장하고 싶습니다.비트 연산을 사용하여 부호없는 정수에 4 문자를 저장할 수 있습니까?
5
A
답변
5
당신은 다음에 대한 각 문자의 비트를 이동 OR을 INT로 결합해야합니다 문자의 배열을 사용하지만 상관없이 데이터가오고 어떻게 같은 원리 없습니다
unsigned int final = 0;
final |= (data[0] << 24);
final |= (data[1] << 16);
final |= (data[2] << 8);
final |= (data[3] );
.
unsigned int a;
char *c;
c = (char *)&a;
c[0] = 'w';
c[1] = 'o';
c[2] = 'r';
c[3] = 'd';
을 아니면 비트 단위 원하는 경우 사용할 수 있습니다
0
당신은 이런 식으로 그것을 할 수 (비트 단위,하지만 어쩌면 더 쉬운 일이 아닙니다) (내가 바로 변화를 가지고 생각)
unsigned int a;
a &= ~(0xff << 24); // blank it
a |= ('w' << 24); // set it
// repeat with 16, 8, 0
먼저 비워 두지 않으면 다른 결과가 발생할 수 있습니다. 이 작업을 수행하는
+1
캐스팅이 필요하지 않습니까? c = (char *) & a? –
+0
선택 사항입니다. 나는 그것을 추가 할 것이다. 감사 – Iustin
3
또 하나의 방법 :
간단한#include <stdio.h>
union int_chars {
int a;
char b[4];
};
int main (int argc, char const* argv[])
{
union int_chars c;
c.a = 10;
c.b[0] = 1;
c.b[1] = 2;
c.b[2] = 3;
c.b[3] = 4;
return 0;
}
0
더, 그것의 더 나은 :
/*
** Made by CHEVALLIER Bastien
** Prep'ETNA Promo 2019
*/
#include <stdio.h>
int main()
{
int i;
int x;
char e = 'E';
char t = 'T';
char n = 'N';
char a = 'A';
((char *)&x)[0] = e;
((char *)&x)[1] = t;
((char *)&x)[2] = n;
((char *)&x)[3] = a;
for (i = 0; i < 4; i++)
printf("%c\n", ((char *)&x)[i]);
return 0;
}
관련 문제
- 1. 부호없는 문자를 사용하는 비트 연산자
- 2. 4 개의 부호없는 정수에 대한 해시 함수 (C++)
- 3. 64 비트 컴퓨터에서 부호없는 128 비트 나누기
- 4. MySQL VARCHAR의 문자를 저장할 수 있습니까?
- 5. 비트 연산을 학습하기위한 자원?
- 6. 부호없는 문자를 늘리거나 줄이는 방법은 무엇입니까?
- 7. 델파이 비트 연산을 코볼로 변환
- 8. 32 비트 부호없는 정수를 사용하여 64 비트 수를 곱하는 알고리즘
- 9. glsl에서 비트 연산을 수행하는 방법
- 10. 큰 정수에 대해 C++에서 산술 연산을 계산하고 플롯?
- 11. 비트 연산을 사용하지 않는 난수 생성
- 12. 부호없는 정수에 값을 할당 할 때 런타임 오류가 발생합니다.
- 13. LINQ 또는 lambda를 사용하여 행렬 연산을 수행 할 수 있습니까?
- 14. 어떤 기술을 사용하여 데이터를 저장할 수 있습니까?
- 15. AWK는 어떻게 배열 연산을 할 수 있습니까?
- 16. ID3v2 코멘트에 몇 개의 문자를 저장할 수 있습니까?
- 17. 이 비트 연산을 어떻게 수행 하시겠습니까?
- 18. 비트 연산을 사용하여 int 값 (범위 설정)을 제한 할 수 있습니까?
- 19. Perl을 사용하여 텍스트를 추출하고 저장할 수 있습니까?
- 20. 캐싱을 사용하여 무거운 페이지를 저장할 수 있습니까?
- 21. Cassandra를 사용하여 객체를 저장할 수 있습니까?
- 22. Microsoft는 3 비트 필드를 단일 비트에 저장할 수 있습니까?
- 23. 라이브러리 또는 128 비트 연산을 수행하는 다른 방법이 있습니까?
- 24. MIPS : 사용자의 부호없는 int 값을 syscall을 통해 가져올 수 있습니까?
- 25. 나 비트 시프트 연산을 이해하는 데 도움이됩니다
- 26. MySQL 정수 부호없는 산술 문제가 있습니까?
- 27. 순열을 사용하여 연산을 구현하는 C++ 클래스가 있습니까?
- 28. 어떻게 알파벳의 빈도를 문자열에 저장할 수 있습니까?
- 29. 비트 맵을 부호없는 char의 벡터로 변환
- 30. 4 비트 ECC 알고리즘
내가 C. –
오 예 코드에서'char' 키워드를 사용하는 것이 좋습니다 않을 것이다, 그래, 나쁘다. 결정된. :) – ssube
'data'가'signed char' 배열 인 경우,'| ='와'<<'는 당신이 원하는대로 작동하지 않을 것입니다. –