C 언어 비트 연산 에 대한 간단 한 예제
1.float 형 수 를 입력 하고 16 진법 으로 32 비트 기계 수 를 출력 합 니 다.
#include<stdio.h>
void main()
{
float a;
int *p;
printf("Input a float number:
");
scanf("%f",&a);
p=(int *)&a;
printf("%X",*p);
}
2.키보드 에서 2 진 비 마이너스 정 수 를 입력 하고 화면 에 출력 에 대응 하 는 10 진,8 진,16 진 수 를 출력 하 며 출력 을 요구 하 는 16 진수 의 영문 자 모 는 대문자 이다.
#include<stdio.h>
void main()
{
int ConvertBinaryToDecimal(long long n);//
long long n;
printf("Input a binary number:
");
scanf("%lld",&n);//
long long m;
m=ConvertBinaryToDecimal(n);//
printf("The number is %d in decimal.
",m);//
printf("The number is %o in octal.
",m);//
printf("The number is %X in hexadecimal.
",m);//
}
int ConvertBinaryToDecimal(long long n)
{
int i=1,j,sum=0;//i ,j ,sum
while(n!=0)
{// n 0
j=n%10;
sum+=j*i;
n/=10;
i*=2;
}
return sum;
}
3.정의 함수 void DecToBin(int a,char b[33]);함수 기능 은 정수 a 를 대응 하 는 32 비트 바 이 너 리 기계 수로 바 꾸 고 32 비트 바 이 너 리 기계 수 를 문자열 형식 으로 문자 배열 b('\0'문자 로 끝)에 저장 하 는 것 입 니 다.%2 연산 을 사용 할 수 없고 비트 연산 자(예 를 들 어 이동 연산,연산 등)를 이용 하여 프로그램 기능 을 수행 할 수 있 습 니 다.
#include<stdio.h>
void main()
{
void DecToBin(int a,char b[33]);//
int n,i=0;char b[33];
scanf("%d",&n);//
DecToBin(n,b);//
}
void DecToBin(int a,char b[33])
{
int i;
if(a>=0)// a , 32 2
{
for(i=0;i<32;i++)b[i]=0;
b[32]='\0';
i=0;
while(a!=0)
{
b[i++]=a&1;
a=a>>1;
}
}
else// a , , , 1
{
for(i=0;i<32;i++)b[i]=1;
b[32]='\0';
a=-a;
i=0;
while(a!=0)
{//
if((a&1)==0)
b[i++]=1;
else
b[i++]=0;
a=a>>1;
}
b[0]+=1;// 1
i=0;
while(b[i]==2)//
{
b[i]=0;
b[++i]+=1;
}
}
for(i=31;i>=0;i--)
printf("%d",b[i]);//
printf("
");
}
4.정의 함수 unsigned mod(unsigned a,unsigned b,unsigned c);기능 은 a*b%c 의 결 과 를 계산 하고 되 돌려 주 는 것 입 니 다.시험 a,b,c 의 범 위 는 0 보다 크 고 231 보다 작 으 며 프로그램 은 64 비트 정형 을 사용 할 수 없습니다(예:long long 유형 또는int 64)풀이.
#include<stdio.h>
void main()
{
unsigned mod(unsigned a, unsigned b, unsigned c);//
unsigned a,b,c;
printf("Input unsigned integer numbers a, b, c:
");
scanf("%u%u%u",&a,&b,&c);//
printf("%u*%u%%%u=%u
",a,b,c,mod(a,b,c));//
}
unsigned mod(unsigned a, unsigned b, unsigned c)
{
int i;
int bin[32]={0};
i=0;
while(b!=0)
{// b 32 bin
bin[i++]=b&1;
b=b>>1;
}
unsigned result=a*bin[31];// result
for(i=31;i>0;i--)
result=(result<<1)%c+a*bin[i-1];// result
result=result%c;
return result;// result
}
C 언어 비트 연산 에 관 한 간단 한 예제 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 C 언어 비트 연산 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C 언어 구현 천둥 제거 게임 상세 정보먼저 작은 메뉴를 표시하고 게임을 할지 여부를 선택하십시오.사용자가 종료를 선택하면 프로그램 실행이 끝나고, 사용자가 게임을 선택하면 지뢰 제거 위치 좌표를 입력하라는 메시지가 표시됩니다.사용자가 입력한 좌표가 바둑...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.