c언어 배열초기화, 비트연산자
2021. 12. 15. 15:43ㆍC
배열 초기화
1차원
char a[] = "Hello"; // 문자형 동적할당
int a[] = {1,2,3]; // 정수형 동적할당
2차원
int a[3][3] = {{1,},{2,}}; // a[0][0]은 1, a[0][3]은 2, 나머지는 0으로 초기화
#비트 연산자
연산자 | 설명 |
& | 대응되는 비트가 모두 1일때 1 |
| | 대응되는 비트 중 하나라도 1이면 1 |
^ | 대응되는 비트가 서로 다르면 1 |
~ | 비트 반전 |
>> | 지정값만큼 왼쪽으로 비트 이동 |
<< | 지정값만큼 오른쪽으로 비트 이동 |
#include <iostream>
using namespace std;
int main(){
int a=53; //00110101
int b=54; //00110110
cout << "&연산" << a&b << endl; //00110100
cout << "|연산" << a|b << endl; //00110111
cout << "^연산" << a^b << endl; //00000011
cout << "~a연산" << ~a << endl; //11001010
cout << "a오른쪽1칸"<< a<<1 << endl;//00011010
cout << "a오른쪽2칸"<< a<<2 << endl; //00001101
cout << "b왼쪽1칸" << b>>1 << endl; //01101100
cout << "b왼쪽2칸" << b>>2 << endl; //11011000
return 0;
}
&연산 52
|연산 55
^연산 3
~a연산 -54
a오른쪽 1칸 106
a오른쪽 2칸 212
b왼쪽 1칸 27
b왼쪽 2칸 13
쉬프트 연산으로 곱셈, 나눗셈이 가능하다.
쉬프트 연산의 곱셈 나눗셈과 산술 연산자의 곱셈 나눗셈의 차이점은 속도임.
코드의 가독성을 위해 보통 일반 연산자를 사용하지만 속도를 고집해야 한다면 쉬프트 연산을 사용할 수 있다.
한가지 단점은 쉬프트 연산은 2의 배수만 계산할 수 있다는 점이다.
이 경우 덧셈과 뺄셈을 잘 혼합하면 홀수 연산도 가능함.
3배 a<<1+a
5배 a<<2+a
'C' 카테고리의 다른 글
GetStdHandle 함수, SetConsoleTextAttribute 함수 (0) | 2022.01.06 |
---|---|
C언어 가변인수함수(printf 등) (0) | 2021.12.15 |
scanf 사용법 관련 (0) | 2021.12.12 |
Error - scanf 반환값이 무시되었습니다. (0) | 2021.09.07 |