2013-05-11 1 views
-1

어떻게 내가 새 값을 지정해야합니다 .. 값 uint32_t key[4]가 어떻게 키 [4]

내가 처음 내 2 차 경기에서 그런 다음이 uint32_t iv[2] = {0xFFFFFFDD};

을 부여 할 uint32_t에 값을 할당 할 ... 수 있습니다 가정의 새로운 값이

10273348653513887325 (decimal) but recorded as string for now. 

string value = "10273348653513887325"; 

입니다하지만 102733486535138873250xFFFFFFDD (16 진수)에서 iv의 값을 변경합니다 (10 진수)

어떻게해야합니까?

+0

무엇을 의미합니까? 그 문자열을 int로 변환하고 싶습니까? – mwerschy

+0

'uint32_t [4]'에 저장하려면 먼저'uint32_t [4]'가 있어야합니다. 귀하의 질문을 오독하지 않는 한'uint32_t [2]'만 있습니다. – hvd

+0

초기 상태 : "uint32_t 키 [4]에 값을 어떻게 할당합니까? 처음에 이걸 가지고 있습니다. uint32_t iv [2] = {0xFFFFFFDD};에 값을 할당하는 방법" 그런 다음 서식을 수정하도록 수정되었습니다. 그것의 모호함 때문에, 편집자는 그것을 부정확하게했을지도 모른다. 어쨌든, 질문은 여전히 ​​조금 모호합니다. 질문을 자세히 설명해 주시겠습니까? – Adrian

답변

0

그렇지 않습니다. 10 진수로 10273348653513887325는 uint32_t에 맞지 않습니다.

uint64_t* piv = (uint64_t*)&iv[0]; 
*piv = decValue; // where dec value is the decimal conversion of the string 

하지만 각 당신이하려는 값의 일부를 가지고 두 개의 32 비트 값을 당신이 정말로해야 어떤 것을 완료 한 후에 : 당신은 그 IV 따라서 64 비트 값 척 수 저장할 수 있습니다. 그게 어색하지 않기 때문에, 사용하고있는 아키텍처의 엔디안이 효과를 발휘합니다. 그러지 마라.

또 다른 대안은 2 개의 32 비트 값과 하나의 64 비트 값의 익명 결합을 사용하는 것입니다.

그것은 그 값을 갖는 IV의 첫 번째 요소에 할당하는 것이

uint32_t iv[2] = {0xFFFFFFDD }; 

결과를 지적받을만한 수도 있고, 0을 포함하는 두 번째는 당신이 무엇을 의미인가요?

@hvd에 의해 지적 되었 듯이, 당신이 달성하고자하는 것에 대한 명확성이 부족합니다.

+2

할당으로 인해 해당 값을 갖는 모든 요소가 생성되지는 않습니다. 그것은 iv [0] = 0xffffffdd와 iv [1] = 0을 설정합니다. – typ1232

+0

그래서, 저의 나쁜 점은 그러한 것을 반영하도록 편집 할 것입니다. 그 점을 지적 해 주셔서 고맙습니다. –