JavaScript에 문자열이있는 경우 문자열의 바이트 수 또는 비트 수를 계산하는 가장 좋은 방법은 무엇입니까?누구든지 문자열의 바이트 수를 계산하는 방법을 알고 있습니까?
EcmaScript spec (5.1)은 EcmaScript의 문자열 요소가 16 비트 값으로 구성되어 있으며 언어가 UTF-16 문자 인코딩을 사용한다는 점에서 8 진수의 10 진수 표현을 가져와야한다고 생각했습니다. (charCodeAt), 2로 나누고, 결과에 floor를하고, Bob의 아버지의 형제를 채 웁니다.
그러나 각 문자를 이진수 (toString (2))로 변환하는 경우 비트 수를 계산하기 위해 0과 1을 함께 계산합니까? 아니면 그냥 1이야? 나는 온라인으로 읽었습니다 (그리고 정보가 스파 스) 어떤
에서 내가 생각하고 그것의 같은 : 문자열의 각 요소가 16 비트 인 경우
Math.floor("A".charCodeAt(0)/2); // 32 bits... No?
이것은 다소 혼란 스럽습니다. M 바이트 심볼의 알파벳에 걸친 길이 N의 문자열은 N x M 바이트를 나타냅니다. 그것은 많은 비트의 8 배 걸립니다. – Patrick87
@shelman 그래,하지만 바이너리로 0과 1을 셉니다. 또는 1은 1을 "on"상태로 나타내고 0은 "off"상태를 나타 내기 때문입니다. – Tom
UTF-16은 고정 폭 인코딩 (http://unicode.org/faq/utf_bom.html#utf16-1)이 아닙니다. 캐릭터는 16 비트 또는 32 비트를 차지할 수 있지만, 일반적으로 16 비트에 맞습니다. – Krab