c语言 7-5
1、
#include <stdio.h> unsigned set_n(unsigned x, int pos, int n) { int i; for(i = pos; i <= pos + n - 1; i++) { x = x | 1U << i; } return x; } unsigned reset_n(unsigned x, int pos, int n) { int i; for(i = pos; i <= pos + n - 1; i++) { x = x & ~(1U << i); } return x; } unsigned inverse_n(unsigned x, int pos, int n) { int i; for(i = pos; i <= pos + n - 1; i++) { x = x ^ 1U << i; } return x; } int main(void) { unsigned x; int pos, n; puts("please intput the test number ,move bits, and range span."); printf("x = "); scanf("%u", &x); printf("pos = "); scanf("%d", &pos); printf("n = "); scanf("%d", &n); printf("set 1 = %u\n", set_n(x, pos, n)); printf("set 0 = %u\n", reset_n(x, pos, n)); printf("inverse = %u\n", inverse_n(x, pos, n)); return 0; }
2、
#include <stdio.h>
unsigned set_n(unsigned x, int pos, int n)
{
int i;
for(i = pos; i <= pos + n - 1; i++)
{
x = x | 1U << i;
}
return x;
}
unsigned reset_n(unsigned x, int pos, int n)
{
int i;
for(i = pos; i <= pos + n - 1; i++)
{
x = x & ~(1U << i);
}
return x;
}
unsigned inverse_n(unsigned x, int pos, int n)
{
int i;
for(i = pos; i <= pos + n - 1; i++)
{
if(x >> i & 1U)
x = x & ~(1U << i);
else
x = x | 1U << i;
}
return x;
}
int main(void)
{
unsigned x; int pos, n;
puts("please input the test number pos span.");
printf("x = "); scanf("%u", &x);
printf("pos = "); scanf("%d", &pos);
printf("n = "); scanf("%d", &n);
printf("set 0 = %u\n", set_n(x, pos, n));
printf("set 1 = %u\n", reset_n(x, pos, n));
printf("inverse = %u\n", inverse_n(x, pos, n));
return 0;
}
3、
#include <stdio.h> unsigned set_n(unsigned x, int pos, int n) { int i; for(i = pos; i <= pos + n - 1; i++) { x = x | 1U << i; } return x; } unsigned reset_n(unsigned x, int pos, int n) { int i; for(i = pos; i <= pos + n - 1; i++) { if(x & 1U << i) x = x ^ 1U << i; else x = x; } return x; } unsigned inverse_n(unsigned x, int pos, int n) { int i; for(i = pos; i <= pos + n - 1; i++) { x = x ^ 1U << i; } return x; } int main(void) { unsigned x; int pos, n; puts("please input test number, pos and span."); printf("x = "); scanf("%u", &x); printf("pos = "); scanf("%d", &pos); printf("n = "); scanf("%d", &n); printf("set 1 = %u\n", set_n(x, pos, n)); printf("set 0 = %u\n", reset_n(x, pos, n)); printf("inverse = %u\n", inverse_n(x, pos, n)); return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律