20221320—冯泰瑞—课上测试:位运算(AI)

news/2025/2/2 20:19:11/文章来源:https://www.cnblogs.com/feng-tairui/p/18697048

20221320—冯泰瑞—课上测试:位运算(AI)

一、使用位运算编写并调用下面函数 ,把当前时间(使用C库函数获得)设置到 TIME 中,给出代码,使用git记录过程。(12 分)

void setHour(int h) 
void setMinute(int m) 
void setSecond(int s) 

代码:

#include <stdio.h>
#include <time.h>unsigned short TIME;// 设置小时
void setHour(int h) {TIME = (TIME & 0x1FFF) | (h << 12);
}// 设置分钟
void setMinute(int m) {TIME = (TIME & 0xE0FF) | (m << 8);
}// 设置秒
void setSecond(int s) {TIME = (TIME & 0xFF00) | s;
}// 获取系统时间并设置TIME
void setCurrentTime(void) {struct tm *timeinfo;time_t rawtime;time(&rawtime);timeinfo = localtime(&rawtime);setHour(timeinfo->tm_hour);setMinute(timeinfo->tm_min);setSecond(timeinfo->tm_sec);
}int main() {setCurrentTime(); // 获取系统时间并设置TIMEreturn 0;
}

运行结果:

fengtairui@fengtairui-virtual-machine:~$ vim main.c
fengtairui@fengtairui-virtual-machine:~$ gcc -g main.c
fengtairui@fengtairui-virtual-machine:~$ ./a.out

git记录过程:

fengtairui@fengtairui-virtual-machine:~$ git init
提示:使用 'master' 作为初始分支的名称。这个默认分支名称可能会更改。要在新仓库中
提示:配置使用初始分支名,并消除这条警告,请执行:
提示:
提示:	git config --global init.defaultBranch <名称>
提示:
提示:除了 'master' 之外,通常选定的名字有 'main'、'trunk' 和 'development'。
提示:可以通过以下命令重命名刚创建的分支:
提示:
提示:	git branch -m <name>
已初始化空的 Git 仓库于 /home/fengtairui/.git/
fengtairui@fengtairui-virtual-machine:~$ git add main.c

二、使用位运算编写并调用下面函数 ,读取TIME中的时间,给出代码,使用git记录过程。(12 分)

void setHour(int h) 
void setMinute(int m) 
void setSecond(int s) 

代码:

#include <stdio.h>
#include <time.h>unsigned short TIME;// 设置小时
void setHour(int h) {TIME = (TIME & 0x1FFF) | (h << 12);
}// 设置分钟
void setMinute(int m) {TIME = (TIME & 0xE0FF) | (m << 8);
}// 设置秒
void setSecond(int s) {TIME = (TIME & 0xFF00) | s;
}// 读取小时
int getHour(void) {return (TIME >> 12) & 0x1F;
}// 读取分钟
int getMinute(void) {return (TIME >> 8) & 0x3F;
}// 读取秒
int getSecond(void) {return TIME & 0xFF;
}// 获取系统时间并设置TIME
void setCurrentTime(void) {struct tm *timeinfo;time_t rawtime;time(&rawtime);timeinfo = localtime(&rawtime);setHour(timeinfo->tm_hour);setMinute(timeinfo->tm_min);setSecond(timeinfo->tm_sec);
}int main() {setCurrentTime(); // 获取系统时间并设置TIMEprintf("当前时间:\n");printf("小时: %d\n", getHour());printf("分钟: %d\n", getMinute());printf("秒: %d\n", getSecond());return 0;
}

运行结果:

fengtairui@fengtairui-virtual-machine:~$ vim main.c
fengtairui@fengtairui-virtual-machine:~$ gcc -g main.c
fengtairui@fengtairui-virtual-machine:~$ ./a.out
当前时间:
小时: 10
分钟: 38
秒: 39

三、 完成main.c测试模块,测试你完成的代码,给出代码,编译运行结果,使用 git 记录过程。(5�0�3)

获取系统时间设置TIME

读取你设置的结果

设置minute 为你学号最后两位

读取minute

代码:

#include <stdio.h>
#include <time.h>unsigned short TIME;// 设置小时
void setHour(int h) {TIME = (TIME & 0x1FFF) | (h << 12);
}// 设置分钟
void setMinute(int m) {TIME = (TIME & 0xE0FF) | (m << 8);
}// 设置秒
void setSecond(int s) {TIME = (TIME & 0xFF00) | s;
}// 读取小时
int getHour(void) {return (TIME >> 12) & 0x1F;
}// 读取分钟
int getMinute(void) {return (TIME >> 8) & 0x3F;
}// 读取秒
int getSecond(void) {return TIME & 0xFF;
}// 获取系统时间并设置TIME
void setCurrentTime(void) {struct tm *timeinfo;time_t rawtime;time(&rawtime);timeinfo = localtime(&rawtime);setHour(timeinfo->tm_hour);setMinute(timeinfo->tm_min);setSecond(timeinfo->tm_sec);
}int main() {setCurrentTime(); // 获取系统时间并设置TIMEprintf("当前时间:\n");printf("小时: %d\n", getHour());printf("分钟: %d\n", getMinute());printf("秒: %d\n", getSecond());// 设置分钟为你学号最后两位setMinute(20);printf("修改后的分钟: %d\n", getMinute());return 0;
}

运行结果:

fengtairui@fengtairui-virtual-machine:~$ gcc -g main.c
fengtairui@fengtairui-virtual-machine:~$ ls
公共的  图片  音乐   bestidiocs      main.c         sm2_key.pem  test.txt
模板    文档  桌面   bestidiocs2024  rc4_example    snap
视频    下载  a.out  build           rc4_example.c  test.bin
fengtairui@fengtairui-virtual-machine:~$ ./a.out
当前时间:
小时: 10
分钟: 40
秒: 8
修改后的分钟: 20

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/878090.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ollama mac使用

教程地址:https://www.youtube.com/watch?v=SRroLOci0CA 安装完成后,常用命令。 启动服务:ollama run deepseek-r1:8B 使用:停止服务:本文来自博客园,作者:NeverLateThanBetter,转载请注明原文链接:https://www.cnblogs.com/do-it-520/p/18697037韶华易逝,不能虚度年…

07. 文件操作

一、文件的查找我们可以使用 find 命令 从指定目录向下递归地遍历其各个子目录,将满足的文件显示在终端中。 find [搜索范围] [选项]其中,选项的可选值如下:-name 文件名:按照指定的文件名查找文件,如果不知道文件的全名,可以使用 * 进行模糊匹配。 -user 用户名:查找属…

《计算机网络》笔记——第五章 运输层

计算机网络(第7版)谢希仁目录第5章 运输层概述运输层的两个主要协议端口用户数据报协议UDPUDP的首部格式传输控制协议TCPTCP的连接可靠传输的工作原理停止等待协议连续ARQ协议TCP报文段的首部格式TCP可靠传输的实现滑动窗口超时重传时间(RTO)的选择选择确认SACKTCP的流量控制…

[Paper Reading] DeepSeek-V3 Technical Report

目录DeepSeek-V3 Technical Report解读TL;DR优势训练数据参数量Method架构MLA(Multi-Head Latent Attention)DeepSeekMoEMoEDeepSeekMoEMTP(Multi-Token Prediction)基建FP8训练部署PrefillingDecodingPre-TrainingDataLong Context ExtensionPost-TrainingSFTReinforcement Le…

表单标签3

如何点击用户名来唤醒对应光标 中for id 两者的对象一致

省选模拟4

省选模拟4 A 小丑做法,设 \(f_{S,i,j}\) 为使用边权 \(\le j\) 的边连通了集合 \(S\),里面使用了 \(i\) 个 \(a\) 的最小生成树。 转移朴素枚举,复杂度 \(O(3^nm^3)\) B 是原题。 注意到一个点走过一轮后,从父亲离开后下一次访问会完全访问。 因此可以 dfs 求得一个节点会在…

闲话 25.2.2

the Kernel Method: a collection of examples 读后感闲话 我怎么感觉我读了这个论文,还不知道 kernel method 是啥啊。 没人总结这个,可能未来要读一些新东西。 推歌:时间的彼端 by 暗猫の祝福 et al. the Kernel Method: a collection of examples 读后感 \(1.\) 第一次出…

表单标签

表单就是数据采集,QQ登录页面类似 定义表单 action:规定提交列表式向何处发送表单数据 method:规定用于发送表单数据方式 action="#"时将表单数据提交到当前的html页面

CTFShow-Web160:利用日志包含漏洞进行文件上传

CTFShow-Web160:利用日志包含漏洞进行文件上传 过滤规则 该题对上传文件内容的过滤规则如下: ​ • 禁止包含 空格 ​ • 禁止包含 反引号 (``) ​ • 禁止包含 log 由于反引号被过滤,无法使用 Web159 的方法,需要利用 日志包含漏洞 来实现绕过。 日志包含漏洞原理 日志包含…

关于在使用VSCode编译C++文件时,显示c++11以上的函数或者方法报错,但是能编译通过的可能解决办法之一

在此之前:已经下载好mingw64,并且将bin目录配置到系统变量当中。第一步,在对应文件当中按住Ctrl + Shift + p,再输入c++,显示出如下内容:点击编辑配置 如果你以前下载过VS,那么这里可能默认为CL.exe(推测:这就是我为什么会出现这个错误的原因),将其改为对应目录下g+…

ADALM-Pluto修改IP地址

在 GNURadio 中使用 ADALM-Pluto 模块是以 IP 地址为基础进行通信的,而固定的 IP 地址 192168.2.1 导致一台电脑无法使用多个 Pluto,因此应该进行更改。在 GNURadio 中使用 ADALM-Pluto 模块是以 IP 地址为基础进行通信的,而固定的 IP 地址 192168.2.1 导致一台电脑无法使用…