為什么計算機起始時間是1970年1月1日

1969年8月,貝爾實驗室的程序員肯湯普遜利用妻兒離開一個月的機會,開始著手創造一個全新的革命性的操作系統,他使用B編譯語言在老舊的PDP-7機器上開發出了Unix的一個版本。隨后,湯普遜和同事丹尼斯里奇改進了B語言,開發出了C語言,重寫了UNIX,新版于1971年發布。

那時的計算機操作系統是32位,時間用32位有符號數表示,則可表示 68 年,
用32位無符號數表示,可表示136年。

32位能表示的最大值是2147483647,另外1年365天的總秒數是31536000,
2147483647/31536000
68.1

也就是說32位能表示的最長時間是68年,而實際上到2038年01月19日03時14分07
秒,便會到達最大時間,過了這個時間點,所有32位操作系統時間便會變為
10000000000000000000000000000000
也就是1901年12月13日20時45分52秒,這樣便會出現時間回歸的現象,很多軟件便會運行異常了。

到這里,我想問題的答案己經出來了:

因為用32位來表示時間的最大間隔是68年,而最早出現的UN以操作系統考慮到計算
機產生的年代和應用的時限綜合取了1970年1月1日作為UNTIME的紀元時間(開始
時間)
至于時間回歸的現象相信隨著64為操作系統的產生逐漸得到解決,因為用64位操作
系統可以表示到292,277,026,596年12月4日15時30分08秒,相信我們的N代子孫,哪怕地球毀滅那天都不用愁不夠用了,因為這個時間己經是千億年以后了。

在這里插入圖片描述
時間來到了292,277,026,596年
未來的某程序員甲:為什么計算機表示只能到這個時間292,277,026,596?
未來的某程序員乙:因為在292,277,026,596年前,那個時候的人們覺得這個時候地球應該已經沒了吧!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/382660.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/382660.shtml
英文地址,請注明出處:http://en.pswp.cn/news/382660.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C++ 使用extern C簡單使用

先說一下函數重載, C 之所以會進行函數重載, 是因為對函數名進行二次修飾(重新命名) 在C文件中寫好的程序, C引入過來,卻沒法使用提示 無法連接的外部符號,那是因為C按照C的函數命名機制來尋找函數的實現. 第一種情況&…

IP數據包格式netinet/ip.h

轉載地址https://www.cnblogs.com/embedded-linux/p/4986449.html 頭文件netinet/ip.h中定義ip: struct ip{#if __BYTE_ORDER __LITTLE_ENDIANunsigned int ip_hl:4; /* header length */unsigned int ip_v:4; /* version */#endif#if __BYTE_ORDER __BIG_ENDIA…

c 結構體的簡單封裝1

先看C語言的 借助結構體 struct Person{char name[64];int age; }; void PersonEat(struct Person *p) {printf("%s在吃飯", p->name); } void test() {struct Person p;strcpy(p.name, "隔壁老王");PersonEat(&p); }

C++ 構造函數分類以及調用

#define _CRT_SECURE_NO_WARNINGS #include<iostream> using namespace std;//1、分類 //按照參數進行分類 有參構造函數 無參構造函數&#xff08;默認構造函數&#xff09; //按照類型進行分類 普通構造函數 拷貝構造函數 class Person { public://默認構造Per…

內存泄漏Valgrind

#內存泄漏Valgrind valgrind --toolmemcheck --leak-checkfull [Your progame option]; https://cloud.tencent.com/developer/article/1006199 https://www.cnblogs.com/zhoudayang/p/6110360.html https://www.cnblogs.com/napoleon_liu/articles/2001802.html https://…

C++ 拷貝構造函數的使用場景

#define _CRT_SECURE_NO_WARNINGS #include<iostream> using namespace std;class Person { public:Person(){cout << "默認構造函數調用" << endl;}Person(int a){m_Age a;cout << "有參構造函數調用" << endl;}Person(co…

大數據多路歸并算法

https://blog.csdn.net/wongson/article/details/49209903 先把一個大的數據分成若干小份&#xff0c;然后對這些小份文件進行排序。排序好之后對這些小份文件進行如下處理。 我們舉個簡單的例子&#xff1a; 文件1&#xff1a;3,6,9 文件2&#xff1a;2,4,8 文件3&#xff…

C++ 深淺拷貝 01

1.C中成員對象如果指向了堆內存的空間&#xff0c;如果這時候使用了系統提供的拷貝構造函數&#xff08;默認淺拷貝&#xff09;&#xff0c;會造成內存重復釋放的問題&#xff0c;導致程序down掉&#xff0c;解決辦法修改默認的拷貝構造函數&#xff0c;也給新的對象需要堆內存…

文件描述符和fcntl及阻塞非阻塞

Linux 文件描述符和重定向 https://www.cnblogs.com/chenmh/p/5382044.html fcntl函數的用法總結 https://www.cnblogs.com/zxc2man/p/7649240.html 簡述linux同步與異步、阻塞與非阻塞概念以及五種IO模型 https://www.cnblogs.com/chaser24/p/6112071.html

C++拷貝構造函數的調用時機

#define _CRT_SECURE_NO_WARNINGS #include<iostream> using namespace std;class Person { public:Person(){cout << "默認構造函數調用" << endl;}Person(int a){m_Age a;cout << "有參構造函數調用" << endl;}Person(co…

守護進程nohup的用法

使./a.out后臺運行 nohup ./a.out & exit // 如果你使用的bash客戶端或者是screen窗口&#xff0c;直接關閉窗口那么該進程也會終止&#xff0c;所以要用exit關于nohup重定向 在使用nohup命令的時候&#xff0c;經常由于輸出nohup.out的路徑沒有寫入權限&#xff0c;而無…

C++ 不懂的地方 記錄01

C 中初始化列表&#xff0c; 的詳細使用&#xff1f;沒有默認構造函數的類類型&#xff0c;因為使用初始化列表可以不必調用默認構造函數來初始化&#xff0c;而是直接調用拷貝構造函數初始化 這句話不是很理解 //手機類 class Phone { public:Phone(string pName){cout <&…

簡答面向數據報,面向字節流

先來一個例子 用UDP傳輸100個字節的數據: 面向數據報 如果發送端調用一次sendto, 發送100個字節, 那么接收端也必須調用對應的一次recvfrom, 接收100個字節; 而不能循環調用10次recvfrom, 每次接收10個字節; 面向字節流 由于緩沖區的存在, TCP程序的讀和寫不需要一一匹配…

TCP三次揮手四次握手(面試總結)

1、 為什么建立連接協議是三次握手&#xff0c;而關閉連接卻是四次握手呢&#xff1f; 全雙工通信。 這是因為服務端的LISTEN狀態下的SOCKET當收到SYN報文的建連請求后&#xff0c;它可以把ACK和SYN&#xff08;ACK起應答作用&#xff0c;而SYN起同步作用&#xff09;放在一個…

C++ 有參構造 無參構造 拷貝構造 以及參數化列表 成員對象之間的執行關系

#include <iostream> #include <string> using namespace std; class Phone { public:string m_pname;/*Phone() {cout << "無參構造" << endl;m_pname "vivo";}*/Phone(const Phone &p) {cout << "拷貝構造"…

C++ this指針初步使用,與鏈式編程

#include "pch.h" #include <iostream> #include <string> using namespace std;class Person { public:int m_age;Person(int age) {this->m_age age;}Person & addAge(Person &p) { // 返回對象的引用this->m_age p.m_age;return *…

linux的makefile -I(大寫i)-L(大寫l)-l(小寫l)

gcc -o hello hello.c -I /home/hello/include -L /home/hello/lib -lworld 上面這句表示在編譯hello.c時&#xff1a; -I /home/hello/include 表示將/home/hello/include目錄作為第一個尋找頭文件的目錄&#xff0c;尋找的順序是&#xff1a;/home/hello/include–>/us…

csdn怎么快速轉載別人的文章

如何轉載 用谷歌瀏覽器加載文章地址&#xff0c;打開文章F12打開Developer Tools&#xff0c;并打開Elements頁面 將文章開頭部分的文字作為關鍵字在Elements界面搜索 以此文為例&#xff1a;http://blog.csdn.net/aggressive_snail/article/details/54375876 搜索找了好久關…