문자열을 이진수로 변환 한 다음 16 진수 값으로 변환하는 방법은 무엇입니까?


0

한 열에는 문자열 유형으로 인코딩 된 비트 문자열이 있습니다. 다른 열에서 동일한 비트 (잠재적으로 선행 0으로 시작)를 이진 값 유형으로 사용하고 싶습니다. 궁극적으로 나는 세 번째 열에서 16 진수 표현 (문자열 또는 16 진수 유형은 중요하지 않음)으로 만들고 싶습니다.

이것은 어떻게 이루어 집니까? 무언가를 프로그래밍해야합니까, 더 빠른 방법이 있습니까?

입력 셀에는 다음 문자열이 포함됩니다. 00000100100011000100100011

문자열을 얻고 싶습니다 : 0123123


내장 함수 를 사용해 보셨습니까 ?
and31415

나는 문자열로 변환 아무것도 표시되지 않습니다
Wuschelbeutel Kartoffelhuhn

'비트 문자열'의 의미가 무엇인지 잘 모르겠습니다. 당신이하려는 일의 예를 들어 줄 수 있습니까?
제임스 메르 츠

"0101"는 문자열 형식의이 0b0101에 다음은 0x3 변환해야
Wuschelbeutel Kartoffelhuhn

1
BIN2HEX는 10 진수 입력으로 제한됩니다. 당신은 몇 개를 사용하고 있습니까?
Mike Fitzpatrick

답변:


0

이진수를 mid (cell, index_start, len)로 나누고 bin2hex ()를 사용하여 밑 부분을 연결하고 CONCATENATE ()를 통해 연결합니다 (셀 참조는 앰퍼샌드로 구분됨).

행 예 :

0010000100000001110100101은 하나의 셀 X1에 있습니다.

ceil (len (X1) / 8) = 4 셀로 분할하여 각각 8 비트 그룹을 얻습니다.

4 개의 셀로 분할하려면 = MID ($ X1, start_pos, 8)를 사용하십시오. 여기서 startpos는 X1에서 비트 열의 시작 색인 (1 기반)입니다.

다른 4 개의 셀 집합에서 = BIN2HEX (8bitNrCell, 2)로 참조하여 이전 4 개의 셀을 16 진으로 콘서트

= CONCATENATE (1stcell & 2ndcell & thirdcell & fourthcell)로 이전 4 개의 셀을 연결


1
당신이 그것을 한 이후로, 당신은 그것을 수행하는 공식을 답변에 붙여 넣을 수도 있습니다.
barlop

내가 한 조각 씩하는 것처럼 당신의 게시물을 보았습니다. 어쨌든 고마워. 공식을 등록, 나는 내 대답을 편집했지만 한 단계에서 그것을하지 않았기 때문에 내가 사용한 함수의 순서를 나열합니다.
Wuschelbeutel Kartoffelhuhn

나는 그것이 한 단계로가 아니라 단계적으로 해결되었다는 것을 알고 있으며, 기능적으로 단계적으로 작성하는 것이 유리하지만, 이제는 그것을 계산 했으므로 계산을 포함 할 수 있습니다. 하나의 긴 셀 수식인지 (작성한 내용과 함께 제공) VBA의 몇 줄로 작성한 내용과 함께 제공됩니다. 그러면 나중에 누군가 더 나은 게시물을 게시 할 수 있습니다. 그리고 / 또는 미래의 사람이 같은 문제를 겪으면 시간을 절약 할 수 있습니다.
barlop

그리고 여기에 더 명확하게 설명하기 위해 만든 그림이 있습니다.
Zertrin

0
Public Function CRY_BIN2HEX(arg As String) As String
  Dim rez As String
  Dim lcnt As Integer
  For lcnt = 1 To WorksheetFunction.RoundUp(Len(arg) / 4, 0)
    If lcnt = 1 Then
        rez = WorksheetFunction.Bin2Hex(Mid(arg, 1, 4))
    Else
        rez = rez & WorksheetFunction.Bin2Hex(Mid(arg, (lcnt * 4) - 3, 4))
    End If
  Next lcnt
  CRY_BIN2HEX = rez
End Function
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.