#include <stdio.h>
#include <stdlib.h>
int main()
{
#if 0
char chFlag = 0;
while (chFlag != '|')
{
scanf("%c", &chFlag);
if (chFlag >= 'A' && chFlag <= 'Z')
chFlag = chFlag - ('A' - 'a');
printf("%c", chFlag);
}
#endif
char chRead[128];
char chWrite[128];
gets(chRead);
for (int i = 0; i < 128; ++i)
{
if (chRead[i] >= 'A' && chRead[i] <= 'Z')
chWrite[i] = chRead[i] - ('A' - 'a');
else
chWrite[i] = chRead[i];
if (chRead[i] == '\000')
break;
}
puts(chWrite);
system("pause");
return EXIT_SUCCESS;
}
#include <stdio.h>
#include <stdlib.h>
int main()
{
char chRead[128];
char chWrite[128];
gets(chRead);
for (int i = 0; i < 128; ++i)
{
if (chRead[i] >= 'A' && chRead[i] <= 'Z')
chWrite[i] = (chRead[i] + 13 <= 'Z') ? (chRead[i] + 13) : (chRead[i] - 13);
else if (chRead[i] >= 'a' && chRead[i] <= 'z')
chWrite[i] = (chRead[i] + 13 <= 'z') ? (chRead[i] + 13) : (chRead[i] - 13);
else
chWrite[i] = chRead[i];
if (chRead[i] == '\000')
break;
}
puts(chWrite);
system("pause");
return EXIT_SUCCESS;
}
#include <stdio.h>
#include <stdlib.h>
// 1.创建两个unsigned int变量,ui1和ui2;ui1作为入参,ui2作为出参
// 2.ui1从左边开始遍历,ui2从右开始赋值(将ui1的赋值到ui2)
// ui1 -> 00001010 ->
// ui2 <- 01010000 <-
unsigned int reverse_bits( unsigned int value )
{
unsigned int uiRet;
unsigned int uiI = 1;
do
{// 遍历整个unsigned int长度的bit
if (value & 1)
uiRet |= 1;
uiRet <<= 1;
value >>= 1;
}while((uiI <<= 1) != 0);
return uiRet;
}
int main()
{
system("pause");
return EXIT_SUCCESS;
}
#include <stdio.h>
#include <stdlib.h>
void set_bit(char bit_array[], unsigned bit_number); // 把指定的位设置为1
void clear_bit(char bit_array[], unsigned bit_number); // 把指定的位清零
void assign_bit(char bit_array[], unsigned bit_number); // 把指定的位清0,否则设置为1。
int test_bit(char bit_array[], unsigned bit_number); // 如果参数中指定的位不是0,函数就返回真,否则返回假
int main()
{
system("pause");
return EXIT_SUCCESS;
}
void set_bit(char bit_array[], unsigned bit_number)
{
int iBitCount = 0;
while (bit_array[iBitCount] != '\000')
{
++iBitCount;
}
if (bit_number < iBitCount)
bit_array[bit_number] = 1;
else
printf("bit_number out of array range");
}
void clear_bit(char bit_array[], unsigned bit_number)
{
int iBitCount = 0;
while (bit_array[iBitCount] != '\000')
{
++iBitCount;
}
if (bit_number < iBitCount)
bit_array[bit_number] = 0;
else
printf("bit_number out of array range");
}
void assign_bit(char bit_array[], unsigned bit_number)
{
int iBitCount = 0;
while (bit_array[iBitCount] != '\000')
{
++iBitCount;
}
if (bit_number < iBitCount)
bit_array[bit_number] = (bit_array[bit_number] == 0) ? 1 : 0;
else
printf("bit_number out of array range");
}
int test_bit(char bit_array[], unsigned bit_number)
{
int iRet = 0;
int iBitCount = 0;
while (bit_array[iBitCount] != '\000')
{
++iBitCount;
}
if (bit_number < iBitCount)
iRet = (bit_array[bit_number] == 0) ? 0 : 1;
else
printf("bit_number out of array range");
return iRet;
}
#include <stdio.h>
#include <stdlib.h>
// 起始位能不能是符号位?
int store_bit_field(int original_value, int value_to_store, unsigned starting_bit,unsigned ending_bit)
{
#if 1
int value;
int i = ending_bit;
int unmask = 0;
int mask = 0;
int num = starting_bit - ending_bit + 1;
while(num != 0){
mask <<= 1;
mask |= 1;
num--;
}
while(i != 0){
i--;
mask <<= 1;
}
unmask = ~mask;
original_value &= unmask;
i = ending_bit;
while(i != 0){
i--;
value_to_store <<= 1;
}
value = value_to_store & mask;
value |= original_value;
return value;
#endif
}
int main()
{
int i = store_bit_field(0,1,4,4);
printf("%d\n", i);
system("pause");
return EXIT_SUCCESS;
}