代码如下,大部分不懂
111111111111111111111
#include<string.h>
#include<stdio.h>
//unsigned int number --->1010101010101010101010
//unsigned int number ---->110011001100110011001100
//unsigned int number ---->11110000 11110000 11110000 11110000
unsigned int set_multi_bit_value(void)
{
unsigned int value;
int i=0;
for(i=0;i<32;i++)
{
// if(i%2==0)// 1010101010
// if(i%4/2==0)// 110011001100
if(i%8/4==0)// 11110000 11110000
{
value &= ~(0x1<<i);
//0x1<<2 --> 00000000 00000000 00000000 00000100
//~(0x1<<2) --> 11111111 11111111 11111111 11111011
}
else // set one to odd bit
{
value |=0x1<<i;
// 0x1<<1 00000000 000000000 000000000 00000010
// 0x1<<3 00000000 000000000 000000000 00001000
}
}
return value;
}
void convert_ten_to_binary(unsigned int value,char buff[])
{
int i=0;
while(value)
{
buff[i++]= value %2+ '0';
value /=2;
}
buff[i]='\0';
}
void reserv_str_fun(char buff[])
{
int len=strlen(buff);
int i=0;
char ch;
for(i=0;i<len/2;i++)
{
ch=buff[i];
buff[i]=buff[len-1-i];
buff[len-1-i]=ch;
}
}
int main(void)
{
unsigned int count=0;
char str[100];
count=set_multi_bit_value();
convert_ten_to_binary(count,str);
reserv_str_fun(str);
printf("str-----> %s\n",str);
return 1;
}
```
@ada; 你可以解释这个代码么?
你把代码贴出来
垃圾代码
第一个函数就是返回一个unsigned int 0xf0f0f0f0 ,直接返回就是没必要计算
第二个函数返回他的二进制字符串形式,就是"1111000011110000..."
第三个函数把它反转
#include<iostream>
#include<stdio.h>
using namespace std;
int main(){
double n,num[1000]; //n表示输入数据的个数,用num数组来存储
double temp;
cin>>n;
for(int i=0;i<n;i++){
cin>>num[i];
}
//进行冒泡排序
for(int i=0;i<n-1;i++){
for(int j=0;j<n-i;j++){
if(num[j]<num[j+1]){
//如果前边的数比后边的大则交换两者的位置
temp = num[j];
num[j] = num[j+1];
num[j+1] = temp;
}
}
//将每次排序之后的数组打印出来
for(int i=0;i<n;i++){
cout<<num[i]<<" ";
}
cout<<endl;
}
cout<<endl;
for(int i=0;i<n;i++){
cout<<num[i]<<" ";
}
return 0;
}
感觉还是挺明显的,你是哪个函数那个一句号看不懂 方便解释
set multi bit value 是获取一个 二进制的值
convert ten to binary 是把十进制转换成二进制
reserv str func 是为打印预留字符串的空间大小