웹 프론트엔드 JS 튜토리얼 비트 단위 저장의 개념과 예

비트 단위 저장의 개념과 예

Jun 23, 2017 am 09:14 AM
저장

오랜만에 졸업시즌이 다가왔습니다. . . 올해 6월 이후 정식으로 사회에 입문하게 되었습니다. . . 나는 항상 아직 준비가 안 됐다는 느낌을 받는다. . . . . . . . . . 큰 전환점. . . 최근 지식을 기록해 보세요. . .

비트별 저장의 개념

데이터베이스 저장에서는 일종의 이진 문자열을 사용하여 여러 값을 저장할 수 있습니다. 이 이진 값이 0과 1로 구성되면 각 값은 오른쪽에서 왼쪽으로 저장될 수 있습니다. 2^n 계산값에 따라 더한 후 십진수로 변환함으로써 여러 상황을 십진수 하나의 값으로 저장하는 목적을 달성합니다.

예를 들어

이제 앱, PC, 작은 프로그램 등 다양한 장소에 적용할 수 있는 3가지 CSS 스타일이 있습니다.

값으로 저장하는 경우 1~3을 사용하여 세 가지 스타일(styleType)을 나타내고 1~3을 사용하여 각각 지원 유형인 app, pc 및 소형 프로그램(supportType)을 나타냅니다. 그러면 이렇게 저장해야 합니다. :

styleType supportType
1 1,3
2 1,2,3
3 1
... ..

분명히 이 경우 supportType 필드는 여러 styleType 대표 값을 저장합니다.

그래서 비트별 저장은 어떤 모습일까요? 3자리 바이너리 문자열로 표현됩니다. 왼쪽에서 오른쪽으로 각 숫자는 스타일 1~3에 해당합니다. 1은 해당 스타일이 지원됨을 의미하고, 0은 해당 스타일이 지원되지 않음을 의미합니다. 스타일 1과 3에 대한 지원을 표현하려면 101을 사용하여 표현하면 첫 번째와 세 번째 숫자는 1이고 나머지 위치는 0입니다. 그러면 저장할 때 이렇게 3자리 문자열만 저장하는 건가요? 아니요, 저장되는 것은 변환된 10진수 값입니다. 2^n에 따라 변환 후 각 비트를 더한 십진수는 역해석이 가능해야 하므로 이 값이 어떤 스타일을 나타내는지 알 수 있습니다.

비트 단위로 저장하는 경우 다음과 같이 저장해야 합니다.

3

1......적용 원리: 수치 합, 1과 1의 결과만 1이 됩니다.
실용적 적용
①시나리오 1, 앱 환경에서 필터 스타일, 즉, 앱만 지원됩니다 스타일이 필터링되어 표시됩니다.

즉, 앱을 지원하는 스타일을 필터링하려면, 즉 styleType의 첫 번째 숫자가 1, 즉 1**일 때 해당하는 스타일을 필터링하면 됩니다. 숫자 4.

js에서는 십진수를 직접 AND로 연결할 수 있으므로 순회 및 필터링 시 코드를 다음과 같이 직접 판단할 수 있습니다.

(item.supportType & 4 == 4)?'对应的styleType支持':'对应的styleType不支持'    //注意,==优先级比&大,所以要加括号
로그인 후 복사

②시나리오 2, supportType을 수정합니다

데이터베이스에 저장된 것은 10진수 배열이므로 해당 관계를 수정할 때에는 어느 위치가 바뀌는지 알아야 하고, 해당 위치의 값을 바꿔야 한다. 이진수 표현은 0이 1이나 1로 바뀌는 과정이다. 0으로 변경하지만 10진수 배열을 변경하는 것은 해당 비트를 변경하는 2^n의 증가 및 감소 과정입니다.

예:

    var supportType = { //按位编码,预留3位
        'app':4,
        'pc':2,
        'mini':1
    }
  var supportVal = 0;
  i f(obj.supportmini == 1){ //支持小程序
     supportVal= supportVal+supportType .mini;
   } 
  if(obj.supportPc == 1){ //支持pc
     supportVal= supportVal+ supportType .pc;
  } 
  obj.supportVal= supportVal;
로그인 후 복사

마지막으로 해당 십진수를 데이터베이스에 저장합니다.

더 많은 장면은 여기에서 확인하실 수 있습니다. ​

위 내용은 비트 단위 저장의 개념과 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

화웨이는 내년에 혁신적인 MED 스토리지 제품을 출시할 예정입니다. 랙 용량은 10PB를 초과하고 전력 소비량은 2kW 미만입니다. 화웨이는 내년에 혁신적인 MED 스토리지 제품을 출시할 예정입니다. 랙 용량은 10PB를 초과하고 전력 소비량은 2kW 미만입니다. Mar 07, 2024 pm 10:43 PM

화웨이는 내년에 혁신적인 MED 스토리지 제품을 출시할 예정입니다. 랙 용량은 10PB를 초과하고 전력 소비량은 2kW 미만입니다.

Vue3+TS+Vite 개발 기술: 데이터 암호화 및 저장 방법 Vue3+TS+Vite 개발 기술: 데이터 암호화 및 저장 방법 Sep 10, 2023 pm 04:51 PM

Vue3+TS+Vite 개발 기술: 데이터 암호화 및 저장 방법

Windows 11에서 캐시를 지우는 방법: 사진이 포함된 자세한 튜토리얼 Windows 11에서 캐시를 지우는 방법: 사진이 포함된 자세한 튜토리얼 Apr 24, 2023 pm 09:37 PM

Windows 11에서 캐시를 지우는 방법: 사진이 포함된 자세한 튜토리얼

우분투에서의 Git 설치 과정 우분투에서의 Git 설치 과정 Mar 20, 2024 pm 04:51 PM

우분투에서의 Git 설치 과정

민감한 데이터를 보호하기 위해 sessionStorage를 올바르게 사용하는 방법 민감한 데이터를 보호하기 위해 sessionStorage를 올바르게 사용하는 방법 Jan 13, 2024 am 11:54 AM

민감한 데이터를 보호하기 위해 sessionStorage를 올바르게 사용하는 방법

Java 컬렉션 프레임워크 전체 분석: 데이터 구조를 분석하고 효율적인 저장의 비밀을 밝힙니다. Java 컬렉션 프레임워크 전체 분석: 데이터 구조를 분석하고 효율적인 저장의 비밀을 밝힙니다. Feb 23, 2024 am 10:49 AM

Java 컬렉션 프레임워크 전체 분석: 데이터 구조를 분석하고 효율적인 저장의 비밀을 밝힙니다.

PHP 배열을 사용한 데이터 캐싱 및 저장 방법 및 기술 PHP 배열을 사용한 데이터 캐싱 및 저장 방법 및 기술 Jul 16, 2023 pm 02:33 PM

PHP 배열을 사용한 데이터 캐싱 및 저장 방법 및 기술

PHP와 Swoole은 어떻게 효율적인 데이터 캐싱 및 저장을 달성합니까? PHP와 Swoole은 어떻게 효율적인 데이터 캐싱 및 저장을 달성합니까? Jul 23, 2023 pm 04:03 PM

PHP와 Swoole은 어떻게 효율적인 데이터 캐싱 및 저장을 달성합니까?

See all articles