首页 > 其他分享 >C语言将日期按位存储在无符号短整型中

C语言将日期按位存储在无符号短整型中

时间:2023-09-06 13:33:55浏览次数:32  
标签:int month 按位 整型 year C语言 day result

#include <stdint.h>

uint16_t date2short (int day, int month, int year) {
    if (day > 31 || day < 1 || month > 12 || month < 1 || year > 127 || year < 0)
        return 0;
    uint16_t result = 0;
    result |= day << 11;
    result |= month << 7;
    result |= year;

    return result;
}

代码来源:https://stackoverflow.com/questions/71640383/bitwise-storing-of-a-date-in-an-unsigned-short-int-why-is-my-result-off-by-1

标签:int,month,按位,整型,year,C语言,day,result
From: https://www.cnblogs.com/yuyanc/p/17682066.html

相关文章

  • C语言数组(12)——写一个三子棋游戏(3)
    一.回顾我们上篇文章主要介绍了棋盘的打印,我们用到了DisplayBoard()函数,那么我们现在就需要来实现玩家下棋这一操作二.玩家下棋功能的实现与前几个函数一样我们将玩家下棋功能代码封装成一个函数,命名为PlayerMove()函数,我们前面说过玩家下棋的本质就是将数据填进二维数组中的元素中......
  • C语言常见命名规范
    C语言常见命名规范 1常见命名规则比较著名的命名规则首推匈牙利命名法,这种命名方法是由Microsoft程序员查尔斯·西蒙尼(CharlesSimonyi)提出的。其主要思想是“在变量和函数名中加入前缀以增进人们对程序的理解”。匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作......
  • C语言模拟实现字符串操作函数
    在c语言中,有许多的库函数strlen就是其中的一个该库函数的功能是求字符串的长度接下来就解释一下strlen的工作流程我先定义一个数组:chararr[]="abcdef";strlen就是在字符串中找到\0就停止intmy_strlen(char*p){ intcount=0; assert(p!=NULL);//assert是断言,函数形参有指......
  • C语言——全局变量和局部变量重名了会怎么样
    前言(1)今天在交流群里面看到这样一个问题:为什么这个程序中下面我定义的void型函数smart在全局变量前声明了,但是在man函数中调用了smart函数,m的值打印出来还是0。#include<stdio.h>intm;voidsmart(void);intmain(void){ printf("m=%d.\n",m); smart(); printf("m=......
  • 材料中的光速+defparam用法+C语言的宏使用
    材料中的光速https://blog.csdn.net/weixin_43229030/article/details/106745060空气中,相对介电常数和相对导磁率都为1,光的速度为12in/ns绝大多数互连线中的光速约为12in/ns/sqrt(4)=6in/ns。当估算电路板上互连线中信号的连度对,就可以假定它约为6in/ns。defparam的用法......
  • 东方博宜OJ1010 数组元素的排序 C语言版
    题目描述对数组的元素按从小到大进行排序。输入第一行有一个整数 n ( 5≤n≤10 );第二行有 n 个整数,每个整数的值在 [0,109]的范围内。输出输出排序后的数组。样例输入812368745输出12345678来源数组问题代码 #incl......
  • C语言-指针
    目录指针行指针多级指针void指针const修饰符指针前置概述:在计算机内存中最小的操作单元是字节Byte(不是位bit)。每一个字节单元,都有一个编号,称为地址。指针定义:专门用来存放地址的变量,称为指针变量,通称指针。格式:<存储类型><数据类型>*<指针变量名>inta=10;int*p......
  • C语言-函数
    函数基本用法举例:两数求和#include<stdio.h>intsum(int,int);//函数的声明,函数的原型intmain(intargc,charconst*argv[]){ intm=10; intn=20; ints; s=sum(m,n); printf("%d\n",s);}intsum(inta,intb){ intsum; sum=a+b; returns......
  • C语言自增++放前面还是后面?
    《STL标准程序》里边一直提到前置比后置效率更高。关于此的一点个人理解记录下来。a++:加的过程中要先产生一个临时变量temp,加1之后的值赋给temp,然后你可以使用a(在if、for、while..中),最后再把temp的值assign给a。++a:这个就是直接在a上加1了,然后改怎么用,就怎么用。归根结底:二者的......
  • 计算机萌新的成长历程——初识C语言16
    大家好,很高兴又能跟各位朋友见面了,前面我们花了两篇内容来探讨操作符的相关内容,今天咱们要开始探讨新的内容了——常见关键字。对于常见关键字,我是这样理解的——C语言中自带的可以直接使用的字符,比如咱们的数据类型:int、char、short、long、longlong、float、double……又比如咱......