作爲練習,自己編了一個:
#include "stdafx.h" #include <iostream> #include <string> //#include <windows.h> using namespace std; int IPToValue(const string& strIP) { //IP轉化爲數值 //沒有格式檢查 //返回值就是結果 int a[4]; string IP = strIP; string strTemp; size_t pos; size_t i=3; do { pos = IP.find("."); if(pos != string::npos) { strTemp = IP.substr(0,pos); a[i] = atoi(strTemp.c_str()); i--; IP.erase(0,pos+1); } else { strTemp = IP; a[i] = atoi(strTemp.c_str()); break; } }while(1); int nResult = (a[3]<<24) + (a[2]<<16)+ (a[1]<<8) + a[0]; return nResult; } string ValueToIP(const int& nValue) { //數值轉化爲IP //沒有格式檢查 //返回值就是結果 char strTemp[20]; sprintf( strTemp,"%d.%d.%d.%d", (nValue&0xff000000)>>24, (nValue&0x00ff0000)>>16, (nValue&0x0000ff00)>>8, (nValue&0x000000ff) ); return string(strTemp); } int main(void) { //對於218.92.189.40轉化後-631456472 //cout<<hex<<-631456472 <<endl;//輸出da5cbd28 string strIP= "218.92.189.40"; cout<<dec<<IPToValue(strIP)<<endl; //cout<<hex<<IPToValue(strIP)<<endl; cout<<ValueToIP(-631456472)<<endl; //IP爲:218.92.176.82轉化後 -631459758 strIP= "218.92.176.82"; cout<<dec<<IPToValue(strIP)<<endl; //cout<<hex<<IPToValue(strIP)<<endl; cout<<ValueToIP(-631459758)<<endl; return 0 ; }
也可以使用現成的win socket函數,以下代碼使用vc6.0通過:
#include "stdafx.h" #include <iostream> #include <winsock2.h> #pragma comment(lib,"ws2_32.lib") using namespace std; int main(void) { cout<<(int)htonl(inet_addr("218.92.189.40"))<<endl;//輸出-631456472 struct in_addr addr; addr.S_un.S_addr = ntohl(-631456472); cout<<inet_ntoa( addr )<<endl;//輸出218.92.189.40 return 0 ; }
簡介: 搶紅包是我們生活常用的社交功能, 這個功能最主要的特點就是用戶的併發請求高, 在系統設計上, 可以使用非常多的辦法來扛住用戶的高併發請求, 在本文中簡要介紹使用Redis緩存中間件來實現搶紅包算法, Redis是一個在內存中基
字符串是 Java 程序中最常用的數據結構之一。在 Java 中 String 類已經重載了"+",字符串可以直接使用"+"進行連接,也可以用StringBuilder/StringBuffer(StringBuilder是J2SE5 及以
Java 平臺提供了兩種類型的字符串操作方式:String 和 StringBuffer/StringBuilder,它們都可以儲存和操作字符串,區別如下: String 是隻讀字符串,也就意味着 String 引用的字符串內容是不能被改
1 枚舉好用嗎? 數據字典型字段,枚舉比Integer好: 限定值,只能賦值枚舉的那幾個實例,不能像Integer隨便輸,保存和查詢的時候特別有用 含義明確,使用時不需要去查數據字典 顯示值跟存儲值直接映射,不需要手動轉換,比如1在頁面上
本文分享自華爲雲社區《Python網絡編程實踐從Socket到HTTP協議的探索與實現》,作者:檸檬味擁抱。 在當今互聯網時代,網絡編程是程序員不可或缺的一項技能。Python作爲一種高級編程語言,提供了豐富的網絡編程庫,使得開發者能夠輕鬆
鏈表或數組作爲底層數據結構 雙向鏈表的頭節點和尾節點視爲雙向隊列的隊首和隊尾,同時實現在兩端添加和刪除節點的功能 使用環形數組來實現雙向隊列 雙向隊列應用 雙向隊列兼具棧與隊列的邏輯,因此它可以實現這兩者的所有應用場景,同時提供更高的自由
Qt 是目前最先進、最完整的跨平臺C++開發工具。它不僅完全實現了一次編寫,所有平臺無差別運行,更提供了幾乎所有開發過程中需要用到的工具。如今,Qt已被運用於超過70個行業、數千家企業,支持數百萬設備及應用。 Line Edits(行編輯)
物理結構在很大程度上決定了程序對內存和緩存的使用效率,進而影響算法程序的整體性能。 由於存儲數據的需要長久保存,並且內存的價格比硬盤貴太多,因此內存無法取代硬盤。 緩存的大容量和高速度難以兼得。隨着 L1、L2、L3 緩存的容量逐步增大
本文分享自華爲雲社區《Ascend C 自定義PRelu算子》,作者: jackwangcumt。 1 PRelu算子概述 PReLU是 Parametric Rectified Linear Unit的縮寫,首次由何凱明團隊提出,和Le
我在文章《 TiDB in 2023 - 一次簡單的回顧 》 中提到了一個我一直以來面臨的問題:每次 TiDB 發佈新版本後,我如何能夠非常自信地告訴客戶,這個版本的質量很好,大家可以放心使用呢? 坦白地說, 這個問題並不容易回答 。 我計
「鏈表 linked list」是一種線性數據結構,其中的每個元素都是一個節點對象,各個節點通過“引用”相連接。 引用記錄了下一個節點的內存地址,通過它可以從當前節點訪問到下一個節點。 鏈表的設計使得各個節點可以分散存儲在內存各處,它們的內
作者:鈺誠 簡介 基於 wasm 機制,Higress 提供了優秀的可擴展性,用戶可以基於 Go/C++/Rust 編寫 wasm 插件,自定義請求處理邏輯,滿足用戶的個性化需求,目前插件已經支持 redis 調用,使得用戶能夠編寫有狀態的
這一節介紹 Qt 的繪圖基礎知識,我們都知道,Qt 裏繪圖使用的是 QPainter,但是首先需要弄明白:在什麼上繪圖和在哪裏繪圖,然後纔是怎麼繪圖,我們就圍繞這幾個問題來展開。 在什麼上繪圖 The QPaintDevice class
本文通過搜索推薦項目進行外賣搜索廣告弱供給填充,提高流量變現效率。我們提出外賣多場景異構大圖、異構大圖在線建模技術演進路線,解決外賣搜索推薦業務多渠道、即時化的挑戰。相關成果發表CIKM2023會議一篇。聯合機器學習平臺搭建大規模圖訓練、
隨着人工智能技術的飛速發展,大型語言模型(LLM)在諸如自然語言處理、智能問答、文本生成等領域的應用越來越廣泛。然而,LLM模型往往具有龐大的參數規模,導致推理過程計算量大、耗時長,成爲了制約其實際應用的關鍵因素。爲了解決這個問題,一系列大