React 各顏色轉換方法、顏色值換算工具HEX、RGB/RGBA、HSL/HSLA、HSV、CMYK

📖 簡介

基于 React + Tailwind CSS 構建的專業顏色轉換工具,支持多種顏色格式的實時轉換。無論是設計師、開發者,都能在這個工具中找到所需的顏色轉換功能。

? 核心功能

🎯 多格式顏色轉換

  • HEX 格式: 支持 3 位縮寫 (#000,?#fff) 和 6 位完整格式 (#ff6b6b)
  • RGB/RGBA: 紅綠藍顏色空間,支持透明度
  • HSL/HSLA: 色相飽和度亮度,更直觀的顏色表示
  • HSV: 色相飽和度明度,常用于圖像處理
  • CMYK: 青品黃黑,印刷行業標準

🌟 亮點

全面的顏色空間支持

// 支持的顏色格式示例
#ff6b6b          // HEX 6位
#f66             // HEX 3位縮寫
rgb(255, 107, 107)           // RGB
rgba(255, 107, 107, 0.8)     // RGBA
hsl(0, 100%, 71%)            // HSL
hsla(0, 100%, 71%, 0.8)      // HSLA
hsv(0, 58%, 100%)            // HSV
cmyk(0%, 58%, 58%, 0%)       // CMYK

🎯 使用場景

  • CSS 開發: 快速獲取不同格式的顏色值用于樣式開發
  • 主題系統: 構建多主題應用時的顏色格式轉換
  • 調試工具: 快速驗證和轉換顏色值

💻 核心代碼實現

1. HEX 到 RGB 轉換(支持縮寫)

const hexToRgb = (hex) => {// 支持 3 位 HEX 縮寫,如 #000, #fffif (/^#?([a-f\d])([a-f\d])([a-f\d])$/i.test(hex)) {const result = /^#?([a-f\d])([a-f\d])([a-f\d])$/i.exec(hex);return {r: parseInt(result[1] + result[1], 16),g: parseInt(result[2] + result[2], 16),b: parseInt(result[3] + result[3], 16),};}// 支持 6 位 HEX,如 #000000, #ffffffconst result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);return result? {r: parseInt(result[1], 16),g: parseInt(result[2], 16),b: parseInt(result[3], 16),}: null;
};

2. RGB 到 HEX 轉換

const rgbToHex = (r, g, b) => {return "#" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);
};

3. RGB 到 HSL 轉換

const rgbToHsl = (r, g, b) => {r /= 255;g /= 255;b /= 255;const max = Math.max(r, g, b);const min = Math.min(r, g, b);let h,s,l = (max + min) / 2;if (max === min) {h = s = 0;} else {const d = max - min;s = l > 0.5 ? d / (2 - max - min) : d / (max + min);switch (max) {case r:h = (g - b) / d + (g < b ? 6 : 0);break;case g:h = (b - r) / d + 2;break;case b:h = (r - g) / d + 4;break;}h /= 6;}return {h: Math.round(h * 360),s: Math.round(s * 100),l: Math.round(l * 100),};
};

4. HSL 到 RGB 轉換

const hslToRgb = (h, s, l) => {h /= 360;s /= 100;l /= 100;const hue2rgb = (p, q, t) => {if (t < 0) t += 1;if (t > 1) t -= 1;if (t < 1 / 6) return p + (q - p) * 6 * t;if (t < 1 / 2) return q;if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;return p;};let r, g, b;if (s === 0) {r = g = b = l;} else {const q = l < 0.5 ? l * (1 + s) : l + s - l * s;const p = 2 * l - q;r = hue2rgb(p, q, h + 1 / 3);g = hue2rgb(p, q, h);b = hue2rgb(p, q, h - 1 / 3);}return {r: Math.round(r * 255),g: Math.round(g * 255),b: Math.round(b * 255),};
};

5. RGB 到 HSV 轉換

const rgbToHsv = (r, g, b) => {r /= 255;g /= 255;b /= 255;const max = Math.max(r, g, b);const min = Math.min(r, g, b);const d = max - min;let h,s,v = max;s = max === 0 ? 0 : d / max;if (max === min) {h = 0;} else {switch (max) {case r:h = (g - b) / d + (g < b ? 6 : 0);break;case g:h = (b - r) / d + 2;break;case b:h = (r - g) / d + 4;break;}h /= 6;}return {h: Math.round(h * 360),s: Math.round(s * 100),v: Math.round(v * 100),};
};

6. RGB 到 CMYK 轉換

const rgbToCmyk = (r, g, b) => {r /= 255;g /= 255;b /= 255;const k = 1 - Math.max(r, g, b);const c = (1 - r - k) / (1 - k);const m = (1 - g - k) / (1 - k);const y = (1 - b - k) / (1 - k);return {c: Math.round(c * 100),m: Math.round(m * 100),y: Math.round(y * 100),k: Math.round(k * 100),};
};

完整源碼

📖 項目簡介

基于 React + Tailwind CSS 構建的專業顏色轉換工具,支持多種顏色格式的實時轉換。無論是設計師、開發者,都能在這個工具中找到所需的顏色轉換功能。

? 核心功能

🎯 多格式顏色轉換

  • HEX 格式: 支持 3 位縮寫 (#000,?#fff) 和 6 位完整格式 (#ff6b6b)
  • RGB/RGBA: 紅綠藍顏色空間,支持透明度
  • HSL/HSLA: 色相飽和度亮度,更直觀的顏色表示
  • HSV: 色相飽和度明度,常用于圖像處理
  • CMYK: 青品黃黑,印刷行業標準

🌟 亮點

全面的顏色空間支持

// 支持的顏色格式示例
#ff6b6b          // HEX 6位
#f66             // HEX 3位縮寫
rgb(255, 107, 107)           // RGB
rgba(255, 107, 107, 0.8)     // RGBA
hsl(0, 100%, 71%)            // HSL
hsla(0, 100%, 71%, 0.8)      // HSLA
hsv(0, 58%, 100%)            // HSV
cmyk(0%, 58%, 58%, 0%)       // CMYK

🎯 使用場景

  • CSS 開發: 快速獲取不同格式的顏色值用于樣式開發
  • 主題系統: 構建多主題應用時的顏色格式轉換
  • 調試工具: 快速驗證和轉換顏色值

💻 核心代碼實現

1. HEX 到 RGB 轉換(支持縮寫)

const hexToRgb = (hex) => {// 支持 3 位 HEX 縮寫,如 #000, #fffif (/^#?([a-f\d])([a-f\d])([a-f\d])$/i.test(hex)) {const result = /^#?([a-f\d])([a-f\d])([a-f\d])$/i.exec(hex);return {r: parseInt(result[1] + result[1], 16),g: parseInt(result[2] + result[2], 16),b: parseInt(result[3] + result[3], 16),};}// 支持 6 位 HEX,如 #000000, #ffffffconst result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);return result? {r: parseInt(result[1], 16),g: parseInt(result[2], 16),b: parseInt(result[3], 16),}: null;
};

2. RGB 到 HEX 轉換

const rgbToHex = (r, g, b) => {return "#" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);
};

3. RGB 到 HSL 轉換

const rgbToHsl = (r, g, b) => {r /= 255;g /= 255;b /= 255;const max = Math.max(r, g, b);const min = Math.min(r, g, b);let h,s,l = (max + min) / 2;if (max === min) {h = s = 0;} else {const d = max - min;s = l > 0.5 ? d / (2 - max - min) : d / (max + min);switch (max) {case r:h = (g - b) / d + (g < b ? 6 : 0);break;case g:h = (b - r) / d + 2;break;case b:h = (r - g) / d + 4;break;}h /= 6;}return {h: Math.round(h * 360),s: Math.round(s * 100),l: Math.round(l * 100),};
};

4. HSL 到 RGB 轉換

const hslToRgb = (h, s, l) => {h /= 360;s /= 100;l /= 100;const hue2rgb = (p, q, t) => {if (t < 0) t += 1;if (t > 1) t -= 1;if (t < 1 / 6) return p + (q - p) * 6 * t;if (t < 1 / 2) return q;if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;return p;};let r, g, b;if (s === 0) {r = g = b = l;} else {const q = l < 0.5 ? l * (1 + s) : l + s - l * s;const p = 2 * l - q;r = hue2rgb(p, q, h + 1 / 3);g = hue2rgb(p, q, h);b = hue2rgb(p, q, h - 1 / 3);}return {r: Math.round(r * 255),g: Math.round(g * 255),b: Math.round(b * 255),};
};

5. RGB 到 HSV 轉換

const rgbToHsv = (r, g, b) => {r /= 255;g /= 255;b /= 255;const max = Math.max(r, g, b);const min = Math.min(r, g, b);const d = max - min;let h,s,v = max;s = max === 0 ? 0 : d / max;if (max === min) {h = 0;} else {switch (max) {case r:h = (g - b) / d + (g < b ? 6 : 0);break;case g:h = (b - r) / d + 2;break;case b:h = (r - g) / d + 4;break;}h /= 6;}return {h: Math.round(h * 360),s: Math.round(s * 100),v: Math.round(v * 100),};
};

6. RGB 到 CMYK 轉換

const rgbToCmyk = (r, g, b) => {r /= 255;g /= 255;b /= 255;const k = 1 - Math.max(r, g, b);const c = (1 - r - k) / (1 - k);const m = (1 - g - k) / (1 - k);const y = (1 - b - k) / (1 - k);return {c: Math.round(c * 100),m: Math.round(m * 100),y: Math.round(y * 100),k: Math.round(k * 100),};
};

完整源碼

import { useState, useEffect } from "react";export default function ColorConversion() {const [colorInput, setColorInput] = useState("#ff6b6b");const [colorFormats, setColorFormats] = useState({hex: "#ff6b6b",rgb: { r: 255, g: 107, b: 107 },hsl: { h: 0, s: 100, l: 71 },hsv: { h: 0, s: 58, v: 100 },cmyk: { c: 0, m: 58, y: 58, k: 0 },rgba: { r: 255, g: 107, b: 107, a: 1 },hsla: { h: 0, s: 100, l: 71, a: 1 },});// 顏色轉換函數const hexToRgb = (hex) => {// 支持 3 位 HEX 縮寫,如 #000, #fffif (/^#?([a-f\d])([a-f\d])([a-f\d])$/i.test(hex)) {const result = /^#?([a-f\d])([a-f\d])([a-f\d])$/i.exec(hex);return {r: parseInt(result[1] + result[1], 16),g: parseInt(result[2] + result[2], 16),b: parseInt(result[3] + result[3], 16),};}// 支持 6 位 HEX,如 #000000, #ffffffconst result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);return result? {r: parseInt(result[1], 16),g: parseInt(result[2], 16),b: parseInt(result[3], 16),}: null;};const rgbToHex = (r, g, b) => {return "#" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);};const rgbToHsl = (r, g, b) => {r /= 255;g /= 255;b /= 255;const max = Math.max(r, g, b);const min = Math.min(r, g, b);let h,s,l = (max + min) / 2;if (max === min) {h = s = 0;} else {const d = max - min;s = l > 0.5 ? d / (2 - max - min) : d / (max + min);switch (max) {case r:h = (g - b) / d + (g < b ? 6 : 0);break;case g:h = (b - r) / d + 2;break;case b:h = (r - g) / d + 4;break;}h /= 6;}return {h: Math.round(h * 360),s: Math.round(s * 100),l: Math.round(l * 100),};};const hslToRgb = (h, s, l) => {h /= 360;s /= 100;l /= 100;const hue2rgb = (p, q, t) => {if (t < 0) t += 1;if (t > 1) t -= 1;if (t < 1 / 6) return p + (q - p) * 6 * t;if (t < 1 / 2) return q;if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;return p;};let r, g, b;if (s === 0) {r = g = b = l;} else {const q = l < 0.5 ? l * (1 + s) : l + s - l * s;const p = 2 * l - q;r = hue2rgb(p, q, h + 1 / 3);g = hue2rgb(p, q, h);b = hue2rgb(p, q, h - 1 / 3);}return {r: Math.round(r * 255),g: Math.round(g * 255),b: Math.round(b * 255),};};const rgbToHsv = (r, g, b) => {r /= 255;g /= 255;b /= 255;const max = Math.max(r, g, b);const min = Math.min(r, g, b);const d = max - min;let h,s,v = max;s = max === 0 ? 0 : d / max;if (max === min) {h = 0;} else {switch (max) {case r:h = (g - b) / d + (g < b ? 6 : 0);break;case g:h = (b - r) / d + 2;break;case b:h = (r - g) / d + 4;break;}h /= 6;}return {h: Math.round(h * 360),s: Math.round(s * 100),v: Math.round(v * 100),};};const rgbToCmyk = (r, g, b) => {r /= 255;g /= 255;b /= 255;const k = 1 - Math.max(r, g, b);const c = (1 - r - k) / (1 - k);const m = (1 - g - k) / (1 - k);const y = (1 - b - k) / (1 - k);return {c: Math.round(c * 100),m: Math.round(m * 100),y: Math.round(y * 100),k: Math.round(k * 100),};};// 更新所有顏色格式const updateColorFormats = (input) => {let rgb;// 檢測輸入格式并轉換為RGBif (input.startsWith("#")) {rgb = hexToRgb(input);} else if (input.startsWith("rgb")) {const match = input.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*([\d.]+))?\)/);if (match) {rgb = {r: parseInt(match[1]),g: parseInt(match[2]),b: parseInt(match[3]),};}} else if (input.startsWith("hsl")) {const match = input.match(/hsla?\((\d+),\s*(\d+)%,\s*(\d+)%(?:,\s*([\d.]+))?\)/);if (match) {rgb = hslToRgb(parseInt(match[1]),parseInt(match[2]),parseInt(match[3]));}}if (rgb) {const hex = rgbToHex(rgb.r, rgb.g, rgb.b);const hsl = rgbToHsl(rgb.r, rgb.g, rgb.b);const hsv = rgbToHsv(rgb.r, rgb.g, rgb.b);const cmyk = rgbToCmyk(rgb.r, rgb.g, rgb.b);setColorFormats({hex,rgb,hsl,hsv,cmyk,rgba: { ...rgb, a: 1 },hsla: { ...hsl, a: 1 },});}};useEffect(() => {updateColorFormats(colorInput);}, [colorInput]);const copyToClipboard = (text) => {navigator.clipboard.writeText(text);};const ColorFormatCard = ({ title, format, copyText }) => (<div className="bg-white rounded-lg shadow-md p-3 sm:p-4 border border-gray-200"><h3 className="text-base sm:text-lg font-semibold text-gray-800 mb-2">{title}</h3><div className="flex flex-col sm:flex-row sm:items-center gap-2 sm:gap-0"><code className="text-xs sm:text-sm bg-gray-100 px-2 py-1 rounded flex-1 font-mono break-all">{format}</code><buttononClick={() => copyToClipboard(copyText)}className="bg-blue-500 hover:bg-blue-600 text-white px-3 py-1 rounded text-xs sm:text-sm transition-colors whitespace-nowrap">復制</button></div></div>);return (<div className="min-h-screen bg-gradient-to-br from-blue-50 to-indigo-100 py-8"><div className="container mx-auto px-4 max-w-6xl"><div className="text-center mb-8"><h1 className="text-4xl font-bold text-gray-800 mb-4">顏色轉換工具</h1><p className="text-gray-600 text-lg">支持多種顏色格式的相互轉換</p></div>{/* 顏色輸入區域 */}<div className="bg-white rounded-xl shadow-lg p-6 mb-8"><div><label className="block text-sm font-medium text-gray-700 mb-2">輸入顏色值</label><div className="flex items-center gap-3"><inputtype="text"value={colorInput}onChange={(e) => setColorInput(e.target.value)}placeholder="輸入 HEX、RGB、HSL 等顏色值"className="flex-1 px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent"/><divclassName="w-12 h-12 rounded-lg border-2 border-gray-300 shadow-sm flex-shrink-0"style={{ backgroundColor: colorFormats.hex }}></div></div></div></div>{/* 顏色格式轉換結果 */}<div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4 sm:gap-6"><ColorFormatCardtitle="HEX 顏色"format={colorFormats.hex}copyText={colorFormats.hex}/><ColorFormatCardtitle="RGB 顏色"format={`rgb(${colorFormats.rgb.r}, ${colorFormats.rgb.g}, ${colorFormats.rgb.b})`}copyText={`rgb(${colorFormats.rgb.r}, ${colorFormats.rgb.g}, ${colorFormats.rgb.b})`}/><ColorFormatCardtitle="RGBA 顏色"format={`rgba(${colorFormats.rgba.r}, ${colorFormats.rgba.g}, ${colorFormats.rgba.b}, ${colorFormats.rgba.a})`}copyText={`rgba(${colorFormats.rgba.r}, ${colorFormats.rgba.g}, ${colorFormats.rgba.b}, ${colorFormats.rgba.a})`}/><ColorFormatCardtitle="HSL 顏色"format={`hsl(${colorFormats.hsl.h}, ${colorFormats.hsl.s}%, ${colorFormats.hsl.l}%)`}copyText={`hsl(${colorFormats.hsl.h}, ${colorFormats.hsl.s}%, ${colorFormats.hsl.l}%)`}/><ColorFormatCardtitle="HSLA 顏色"format={`hsla(${colorFormats.hsla.h}, ${colorFormats.hsla.s}%, ${colorFormats.hsla.l}%, ${colorFormats.hsla.a})`}copyText={`hsla(${colorFormats.hsla.h}, ${colorFormats.hsla.s}%, ${colorFormats.hsla.l}%, ${colorFormats.hsla.a})`}/><ColorFormatCardtitle="HSV 顏色"format={`hsv(${colorFormats.hsv.h}, ${colorFormats.hsv.s}%, ${colorFormats.hsv.v}%)`}copyText={`hsv(${colorFormats.hsv.h}, ${colorFormats.hsv.s}%, ${colorFormats.hsv.v}%)`}/><ColorFormatCardtitle="CMYK 顏色"format={`cmyk(${colorFormats.cmyk.c}%, ${colorFormats.cmyk.m}%, ${colorFormats.cmyk.y}%, ${colorFormats.cmyk.k}%)`}copyText={`cmyk(${colorFormats.cmyk.c}%, ${colorFormats.cmyk.m}%, ${colorFormats.cmyk.y}%, ${colorFormats.cmyk.k}%)`}/></div>{/* 使用說明 */}<div className="mt-8 sm:mt-12 bg-white rounded-xl shadow-lg p-4 sm:p-6"><h2 className="text-xl sm:text-2xl font-bold text-gray-800 mb-4">使用說明</h2><div className="grid grid-cols-1 lg:grid-cols-2 gap-4 sm:gap-6"><div><h3 className="text-lg font-semibold text-gray-700 mb-2">支持的輸入格式:</h3><ul className="space-y-2 text-gray-600"><li>? HEX: #ff6b6b 或 #f66</li><li>? HEX 縮寫: #000, #fff, #abc</li><li>? RGB: rgb(255, 107, 107)</li><li>? RGBA: rgba(255, 107, 107, 0.8)</li><li>? HSL: hsl(0, 100%, 71%)</li><li>? HSLA: hsla(0, 100%, 71%, 0.8)</li></ul></div><div><h3 className="text-lg font-semibold text-gray-700 mb-2">輸出格式:</h3><ul className="space-y-2 text-gray-600"><li>? HEX 十六進制</li><li>? RGB/RGBA 紅綠藍</li><li>? HSL/HSLA 色相飽和度亮度</li><li>? HSV 色相飽和度明度</li><li>? CMYK 青品黃黑</li></ul></div></div></div></div></div>);
}

React 各顏色轉換方法、顏色值換算工具HEX、RGB/RGBA、HSL/HSLA、HSV、CMYK - 高質量源碼分享平臺-免費下載各類網站源碼與模板及前沿動態資訊

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

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

相關文章

開關電源抄板學習

一、實物 輸入220V&#xff0c;輸出12V5A 二、拍照并使用PS矯正 用卡尺測量下PCB的尺寸&#xff0c;在PS中作為畫布。 用相機拍下照片&#xff0c;導入到PS中&#xff0c;用拉伸工具對圖片進行矯正處理&#xff0c;并拉伸到和畫布一樣大小。 三、打開嘉立創EDA&#xff0c;導…

大數據在UI前端的應用探索:基于用戶行為分析的產品優化策略

hello寶子們...我們是艾斯視覺擅長ui設計、前端開發、數字孿生、大數據、三維建模、三維動畫10年經驗!希望我的分享能幫助到您!如需幫助可以評論關注私信我們一起探討!致敬感謝感恩! 一、引言&#xff1a;用戶行為分析重構產品優化的技術邏輯 在數字化產品體驗競爭日益激烈的今…

優化 WebSocket 實現單例連接用于打印【待測試 】

class PrinterWebSocket { constructor(url) { if (PrinterWebSocket.instance) { return PrinterWebSocket.instance; } this.url url; this.socket null; this.queue []; // 打印任務隊列 this.isConnecting false; this.retry…

Spring Cloud Alibaba/Spring Boot整合華為云存儲實例(REST API方式)

一個小作業&#xff0c;初次嘗試華為云存儲&#xff0c;一點分享 原項目采用Spring Cloud Alibaba微服務技術、Spring Boot框架技術、VueJS前端框架開發技術&#xff0c;nacos注冊中心&#xff0c;數據庫為mysql 下面看一下沒有運用云存儲的原項目&#xff08;可跳過&#xf…

Petalinux工程如何離線編譯

目錄 一.下載離線包 1.1 共享狀態緩存包&#xff1a;sstate-cache 1.1.1 進入官網打開Petalinux工具網頁 1.1.2 找到相應的Petalinux版本 1.1.3 根據平臺下載 1.2 下載downloads源碼包 1.3 open_components源碼包 二.解壓 2.1 sstate-cache 2.2 downloads源碼包 2.3…

w446數字化農家樂管理平臺的設計與實現

&#x1f64a;作者簡介&#xff1a;多年一線開發工作經驗&#xff0c;原創團隊&#xff0c;分享技術代碼幫助學生學習&#xff0c;獨立完成自己的網站項目。 代碼可以查看文章末尾??聯系方式獲取&#xff0c;記得注明來意哦~&#x1f339;贈送計算機畢業設計600個選題excel文…

AWS WebRTC:通過shell分析viewer端日志文件

在并發過程中,每個viewer會產生一個對應的日志文件,日志文件名為: viewer_channel_index_20250626_030943_145.logviewer端日志比master端日志文件數量多,比例大概是5:1,有1個master就會有5個viewer,每個viewer對應一個日志文件。 我要統計的是從啟動viewer到出第一幀視…

時間轉換——借助時間模塊time

兩種時間戳類型 例如s11704879917000 1、13位的時間戳&#xff1a;單位&#xff08;毫秒&#xff09; &#xff08;1&#xff09;毫秒變成秒&#xff0c;1s1000ms&#xff0c;s1/1000&#xff08;秒&#xff09; &#xff08;2&#xff09;加載時間 times time.localtime(…

LabVIEW MathScript薄板熱流模擬

熱流模擬是熱設計關鍵環節&#xff0c;傳統工具精準但開發周期長&#xff0c;本 VI 利用 LabVIEW 優勢&#xff0c;面向工程師快速驗證需求&#xff0c;在初步方案迭代、教學演示等場景更具效率&#xff0c;為熱分析提供輕量化替代路徑&#xff0c;后續可結合專業工具&#xff…

為什么大語言模型訓練和推理中越來越多地使用 bfloat16?

隨著大語言模型&#xff08;LLM&#xff09;的參數規模從幾十億&#xff08;B&#xff09;飆升到千億&#xff08;T&#xff09;級別&#xff0c;模型的訓練與推理效率變得尤為關鍵。為了在保證精度的同時節省顯存、加快運算&#xff0c;混合精度訓練&#xff08;Mixed Precisi…

暴力破解漏洞與命令執行漏洞

在當今的互聯網世界中&#xff0c;網絡安全威脅無處不在。對于Java后端開發者而言&#xff0c;了解常見的Web漏洞及其防護措施至關重要。本文將探討兩種常見的安全漏洞&#xff1a;暴力破解漏洞&#xff08;Brute Force&#xff09;和命令執行漏洞&#xff08;Command Injectio…

HDFS Java API 開發指南:從基礎操作到高級應用

HDFS (Hadoop Distributed File System) 作為大數據生態的核心存儲系統&#xff0c;提供了分布式、高容錯、高吞吐量的數據存儲能力。通過 Java API 操作 HDFS 是開發大數據應用的基礎技能。本文將基于你的筆記&#xff0c;詳細解析 HDFS Java API 的使用方法&#xff0c;并提供…

區塊鏈技術核心組件及應用架構的全面解析

區塊鏈技術是一套融合密碼學、分布式系統與經濟激勵的復合型技術體系&#xff0c;以下是其核心組件及應用架構的全面解析&#xff1a;一、區塊鏈核心技術棧 1. 分布式賬本技術&#xff08;DLT&#xff09; 核心原理&#xff1a;多節點共同維護不可篡改的數據鏈數據結構&#xf…

golang 協程 如何中斷和恢復

Go語言通知協程退出(取消)的幾種方式 - 知乎 GoLang之goroutine底層系列二(goroutine的創建、讓出、恢復)_golang goroutine-CSDN博客 在 Go 語言中&#xff0c;協程&#xff08;也稱為 goroutine&#xff09;是通過 go 關鍵字啟動的輕量級線程。由于 goroutine 的調度是由 Go…

ARMv8 創建3級頁表示例

最近在研究arm v8頁表創建過程&#xff0c;順帶做了一個如下形式的頁表&#xff0c; // level 1 table, 4 entries: // 0000 0000 - 3FFF FFFF, 1GB block, DDR // 4000 0000 - 7FFF FFFF, 1GB block, DDR // 8000 0000 - BFFF FFFF, 1GB block, DDR // C000 0000 - FFFF FFFF…

遷港戰平 精神可勝國足

遷港戰平可勝國足 江蘇省城市足球聯賽第6輪&#xff0c;宿遷隊主場迎戰連云港隊。比賽中&#xff0c;宿遷隊由張棟和高馳各入一球&#xff0c;連云港隊則憑借穆家鑫與李團杰的進球連扳兩城。最終雙方以2比2握手言和。 第38分鐘&#xff0c;張棟角球進攻中無人盯防推射破門&…

408第三季part2 - 計算機網絡 - ip分布首部格式與分片

理解 好好看一下這個圖 每行是4B&#xff0c;首部也不一定是20B&#xff0c;還有可選字段&#xff0c;可以變的更大 然后我們先看一下概念 然后這個生存時間每路過一個路由器就會扣1滴血 比如一開始是13&#xff0c;經過r1r2r3到B會變成10 但如果是2&#xff0c;經過第二個路…

詳解String類不可變的底層原理

String類 String的基本特性 不可變性: String 對象一旦創建就不能被修改&#xff0c;所有看似修改的操作實際上都是創建新的 String 對象final類: String 類被聲明為 final&#xff0c;不能被繼承基于字符數組: 內部使用final char value[]存儲字符數據(Java9以后改為byte[] …

GIT: 一個用于視覺與語言的生成式圖像到文本轉換 Transformer

摘要 在本文中&#xff0c;我們設計并訓練了一個生成式圖像到文本轉換 Transformer——GIT&#xff0c;以統一視覺-語言任務&#xff0c;如圖像/視頻字幕生成和問答。雖然生成式模型在預訓練和微調之間提供了一致的網絡架構&#xff0c;但現有工作通常包含復雜的結構&#xff…

20250706-9-Docker快速入門(下)-Docker在線答疑_筆記

一、Kubernetes核心概念與集群搭建 1. 在線答疑 &#xfeff; 1&#xff09;答疑Docker需要掌握到什么程度 學習目標&#xff1a;達到入門水平即可&#xff0c;重點掌握第一章Docker入門視頻內容學習建議&#xff1a;預習時間約3-4小時&#xff0c;建議吸收視頻內容的80%學…