tools: Added IEEE 756 floating point number tester
This commit is contained in:
parent
efed07ac8b
commit
f1b2d5881e
@ -72,6 +72,18 @@ namespace hex {
|
|||||||
return (value ^ mask) - mask;
|
return (value ^ mask) - mask;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<hex::integral T>
|
||||||
|
constexpr inline T swapBitOrder(size_t numBits, T value) {
|
||||||
|
T result = 0x00;
|
||||||
|
|
||||||
|
for (size_t bit = 0; bit < numBits; bit++) {
|
||||||
|
result <<= 1;
|
||||||
|
result |= (value & (1 << bit)) != 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
template<class... Ts>
|
template<class... Ts>
|
||||||
struct overloaded : Ts... { using Ts::operator()...; };
|
struct overloaded : Ts... { using Ts::operator()...; };
|
||||||
template<class... Ts>
|
template<class... Ts>
|
||||||
|
@ -134,4 +134,6 @@ namespace ImGui {
|
|||||||
bool InputScalarCallback(const char* label, ImGuiDataType data_type, void* p_data, const char* format, ImGuiInputTextFlags flags, ImGuiInputTextCallback callback, void* user_data);
|
bool InputScalarCallback(const char* label, ImGuiDataType data_type, void* p_data, const char* format, ImGuiInputTextFlags flags, ImGuiInputTextCallback callback, void* user_data);
|
||||||
|
|
||||||
void HideTooltip();
|
void HideTooltip();
|
||||||
|
|
||||||
|
bool BitCheckbox(const char* label, bool* v);
|
||||||
}
|
}
|
@ -590,4 +590,47 @@ namespace ImGui {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool BitCheckbox(const char* label, bool* v) {
|
||||||
|
ImGuiWindow* window = GetCurrentWindow();
|
||||||
|
if (window->SkipItems)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
ImGuiContext& g = *GImGui;
|
||||||
|
const ImGuiStyle& style = g.Style;
|
||||||
|
const ImGuiID id = window->GetID(label);
|
||||||
|
const ImVec2 label_size = CalcTextSize(label, NULL, true);
|
||||||
|
|
||||||
|
const ImVec2 size = ImVec2(CalcTextSize("0").x + style.FramePadding.x * 2, GetFrameHeight());
|
||||||
|
const ImVec2 pos = window->DC.CursorPos;
|
||||||
|
const ImRect total_bb(pos, pos + size);
|
||||||
|
ItemSize(total_bb, style.FramePadding.y);
|
||||||
|
if (!ItemAdd(total_bb, id))
|
||||||
|
{
|
||||||
|
IMGUI_TEST_ENGINE_ITEM_INFO(id, label, g.LastItemData.StatusFlags | ImGuiItemStatusFlags_Checkable | (*v ? ImGuiItemStatusFlags_Checked : 0));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool hovered, held;
|
||||||
|
bool pressed = ButtonBehavior(total_bb, id, &hovered, &held);
|
||||||
|
if (pressed)
|
||||||
|
{
|
||||||
|
*v = !(*v);
|
||||||
|
MarkItemEdited(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
const ImRect check_bb(pos, pos + size);
|
||||||
|
RenderNavHighlight(total_bb, id);
|
||||||
|
RenderFrame(check_bb.Min, check_bb.Max, GetColorU32((held && hovered) ? ImGuiCol_FrameBgActive : hovered ? ImGuiCol_FrameBgHovered : ImGuiCol_FrameBg), true, style.FrameRounding);
|
||||||
|
|
||||||
|
RenderText(check_bb.Min + style.FramePadding, *v ? "1" : "0");
|
||||||
|
|
||||||
|
ImVec2 label_pos = ImVec2(check_bb.Max.x + style.ItemInnerSpacing.x, check_bb.Min.y + style.FramePadding.y);
|
||||||
|
if (label_size.x > 0.0f)
|
||||||
|
RenderText(label_pos, label);
|
||||||
|
|
||||||
|
IMGUI_TEST_ENGINE_ITEM_INFO(id, label, g.LastItemData.StatusFlags | ImGuiItemStatusFlags_Checkable | (*v ? ImGuiItemStatusFlags_Checked : 0));
|
||||||
|
return pressed;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -84,7 +84,7 @@ namespace hex::plugin::builtin {
|
|||||||
[](auto buffer, auto endian, auto style) {
|
[](auto buffer, auto endian, auto style) {
|
||||||
hex::unused(endian, style);
|
hex::unused(endian, style);
|
||||||
|
|
||||||
std::string binary = hex::format("0b{:b}", buffer[0]);
|
std::string binary = hex::format("0b{:08b}", buffer[0]);
|
||||||
|
|
||||||
return [binary] {
|
return [binary] {
|
||||||
ImGui::TextUnformatted(binary.c_str());
|
ImGui::TextUnformatted(binary.c_str());
|
||||||
|
@ -512,8 +512,6 @@ namespace hex::plugin::builtin {
|
|||||||
ConvertBases(base);
|
ConvertBases(base);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void drawPermissionsCalculator() {
|
void drawPermissionsCalculator() {
|
||||||
static bool setuid, setgid, sticky;
|
static bool setuid, setgid, sticky;
|
||||||
static bool r[3], w[3], x[3];
|
static bool r[3], w[3], x[3];
|
||||||
@ -1143,6 +1141,169 @@ namespace hex::plugin::builtin {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void drawIEEE756Helper() {
|
||||||
|
static u128 value = 0x00;
|
||||||
|
static int exponentBitCount = 8, mantissaBitCount = 23;
|
||||||
|
|
||||||
|
const static auto BitCheckbox = [](u8 bit) {
|
||||||
|
bool checkbox = false;
|
||||||
|
|
||||||
|
checkbox = (value & (u128(1) << bit)) != 0;
|
||||||
|
ImGui::BitCheckbox("##checkbox", &checkbox);
|
||||||
|
value = (value & ~(u128(1) << bit)) | (u128(checkbox) << bit);
|
||||||
|
};
|
||||||
|
|
||||||
|
const static auto BitCheckboxes = [](u32 startBit, u32 count) {
|
||||||
|
for (u32 i = 0; i < count; i++) {
|
||||||
|
ImGui::PushID(startBit - i);
|
||||||
|
BitCheckbox(startBit - i);
|
||||||
|
ImGui::SameLine(0, 0);
|
||||||
|
ImGui::PopID();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const auto totalBitCount = 1 + exponentBitCount + mantissaBitCount;
|
||||||
|
const auto signBitPosition = totalBitCount - 0;
|
||||||
|
const auto exponentBitPosition = totalBitCount - 1;
|
||||||
|
const auto mantissaBitPosition = totalBitCount - 1 - exponentBitCount;
|
||||||
|
|
||||||
|
const static auto ExtractBits = [](u32 startBit, u32 count) {
|
||||||
|
return hex::extract(startBit, startBit - (count - 1), value);
|
||||||
|
};
|
||||||
|
|
||||||
|
const auto signBits = ExtractBits(signBitPosition, 1);
|
||||||
|
const auto exponentBits = ExtractBits(exponentBitPosition, exponentBitCount);
|
||||||
|
const auto mantissaBits = ExtractBits(mantissaBitPosition, mantissaBitCount);
|
||||||
|
|
||||||
|
if (ImGui::BeginTable("##outer", 4, ImGuiTableFlags_SizingFixedFit | ImGuiTableFlags_NoKeepColumnsVisible | ImGuiTableFlags_ScrollX, ImVec2(0, ImGui::GetTextLineHeightWithSpacing() * 4))) {
|
||||||
|
ImGui::TableSetupColumn("hex.builtin.tools.ieee756.sign"_lang);
|
||||||
|
ImGui::TableSetupColumn("hex.builtin.tools.ieee756.exponent"_lang);
|
||||||
|
ImGui::TableSetupColumn("hex.builtin.tools.ieee756.mantissa"_lang);
|
||||||
|
|
||||||
|
ImGui::TableHeadersRow();
|
||||||
|
ImGui::TableNextRow();
|
||||||
|
|
||||||
|
// Sign
|
||||||
|
ImGui::TableNextColumn();
|
||||||
|
ImGui::Indent(20_scaled);
|
||||||
|
BitCheckboxes(signBitPosition, 1);
|
||||||
|
ImGui::Unindent(20_scaled);
|
||||||
|
|
||||||
|
// Exponent
|
||||||
|
ImGui::TableNextColumn();
|
||||||
|
BitCheckboxes(exponentBitPosition, exponentBitCount);
|
||||||
|
|
||||||
|
// Exponent
|
||||||
|
ImGui::TableNextColumn();
|
||||||
|
BitCheckboxes(mantissaBitPosition, mantissaBitCount);
|
||||||
|
|
||||||
|
ImGui::EndTable();
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
ImGui::SliderInt("hex.builtin.tools.ieee756.exponent_size"_lang, &exponentBitCount, 1, 128 - mantissaBitCount);
|
||||||
|
ImGui::SliderInt("hex.builtin.tools.ieee756.mantissa_size"_lang, &mantissaBitCount, 1, 128 - exponentBitCount);
|
||||||
|
|
||||||
|
ImGui::Separator();
|
||||||
|
|
||||||
|
if (ImGui::Button("hex.builtin.tools.ieee756.half_precision"_lang)) { exponentBitCount = 5; mantissaBitCount = 10; }
|
||||||
|
ImGui::SameLine();
|
||||||
|
if (ImGui::Button("hex.builtin.tools.ieee756.singe_precision"_lang)) { exponentBitCount = 8; mantissaBitCount = 23; }
|
||||||
|
ImGui::SameLine();
|
||||||
|
if (ImGui::Button("hex.builtin.tools.ieee756.double_precision"_lang)) { exponentBitCount = 11; mantissaBitCount = 52; }
|
||||||
|
|
||||||
|
ImGui::Separator();
|
||||||
|
ImGui::NewLine();
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
const auto exponentBias = (u128(1) << (exponentBitCount - 1)) - 1;
|
||||||
|
|
||||||
|
const long double signValue = signBits == 0 ? 1 : -1;
|
||||||
|
const long double exponentValue = exponentBits == 0 ? 0 : std::pow<long double>(2, i128(exponentBits) - i128(exponentBias));
|
||||||
|
const long double mantissaValue = [mantissaBitPosition] {
|
||||||
|
long double mantissa = 1.0;
|
||||||
|
for (i32 bit = 0; bit < mantissaBitCount; bit++) {
|
||||||
|
if (hex::extract(mantissaBitPosition - bit, mantissaBitPosition - bit, value) != 0)
|
||||||
|
mantissa += 1.0 / static_cast<long double>(u128(1) << (bit + 1));
|
||||||
|
}
|
||||||
|
|
||||||
|
return mantissa;
|
||||||
|
}();
|
||||||
|
|
||||||
|
|
||||||
|
if (ImGui::BeginTable("##result", 5, ImGuiTableFlags_RowBg | ImGuiTableFlags_SizingFixedFit)) {
|
||||||
|
ImGui::TableSetupColumn("hex.builtin.tools.ieee756.type"_lang, ImGuiTableColumnFlags_IndentEnable);
|
||||||
|
ImGui::TableSetupColumn("##padding", ImGuiTableColumnFlags_WidthFixed, 30_scaled);
|
||||||
|
ImGui::TableSetupColumn("hex.builtin.tools.ieee756.formula"_lang);
|
||||||
|
ImGui::TableSetupColumn("##equals");
|
||||||
|
ImGui::TableSetupColumn("hex.builtin.tools.ieee756.result.title"_lang);
|
||||||
|
|
||||||
|
ImGui::TableHeadersRow();
|
||||||
|
|
||||||
|
ImGui::TableNextRow();
|
||||||
|
|
||||||
|
ImGui::TableNextColumn();
|
||||||
|
ImGui::TextUnformatted("hex.builtin.tools.ieee756.sign"_lang);
|
||||||
|
ImGui::TableNextColumn();
|
||||||
|
ImGui::TableNextColumn();
|
||||||
|
ImGui::TextFormatted("(-1)^{0}", signBits);
|
||||||
|
ImGui::TableNextColumn();
|
||||||
|
ImGui::TextUnformatted("=");
|
||||||
|
ImGui::TableNextColumn();
|
||||||
|
ImGui::TextFormatted("{0}", signValue);
|
||||||
|
|
||||||
|
ImGui::TableNextColumn();
|
||||||
|
ImGui::TextUnformatted("hex.builtin.tools.ieee756.exponent"_lang);
|
||||||
|
ImGui::TableNextColumn();
|
||||||
|
ImGui::TableNextColumn();
|
||||||
|
ImGui::TextFormatted("2^({0} - {1})", exponentBits, exponentBias);
|
||||||
|
ImGui::TableNextColumn();
|
||||||
|
ImGui::TextUnformatted("=");
|
||||||
|
ImGui::TableNextColumn();
|
||||||
|
ImGui::TextFormatted("{0}", exponentValue);
|
||||||
|
|
||||||
|
ImGui::TableNextColumn();
|
||||||
|
ImGui::TextUnformatted("hex.builtin.tools.ieee756.mantissa"_lang);
|
||||||
|
ImGui::TableNextColumn();
|
||||||
|
ImGui::TableNextColumn();
|
||||||
|
ImGui::TextFormatted("1.0 + 0x{0:02X}", mantissaBits);
|
||||||
|
ImGui::TableNextColumn();
|
||||||
|
ImGui::TextUnformatted("=");
|
||||||
|
ImGui::TableNextColumn();
|
||||||
|
ImGui::TextFormatted("{0:.2f}", mantissaValue);
|
||||||
|
|
||||||
|
ImGui::TableNextRow();
|
||||||
|
ImGui::TextUnformatted(" ");
|
||||||
|
ImGui::Separator();
|
||||||
|
ImGui::TableNextRow();
|
||||||
|
|
||||||
|
ImGui::TableNextColumn();
|
||||||
|
ImGui::TextUnformatted("hex.builtin.tools.ieee756.result.float"_lang);
|
||||||
|
ImGui::TableNextColumn();
|
||||||
|
ImGui::TableNextColumn();
|
||||||
|
ImGui::TextFormatted("{0} * {1} * {2}", signValue, exponentValue, mantissaValue);
|
||||||
|
ImGui::TableNextColumn();
|
||||||
|
ImGui::TextUnformatted("=");
|
||||||
|
ImGui::TableNextColumn();
|
||||||
|
ImGui::TextFormatted("{0:.2f}", signValue * exponentValue * mantissaValue);
|
||||||
|
|
||||||
|
ImGui::TableNextColumn();
|
||||||
|
ImGui::TextUnformatted("hex.builtin.tools.ieee756.result.hex"_lang);
|
||||||
|
ImGui::TableNextColumn();
|
||||||
|
ImGui::TableNextColumn();
|
||||||
|
ImGui::TableNextColumn();
|
||||||
|
ImGui::TextUnformatted("=");
|
||||||
|
ImGui::TableNextColumn();
|
||||||
|
ImGui::TextFormatted("0x{0:02X}", value);
|
||||||
|
|
||||||
|
ImGui::EndTable();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
void registerToolEntries() {
|
void registerToolEntries() {
|
||||||
ContentRegistry::Tools::add("hex.builtin.tools.demangler", drawDemangler);
|
ContentRegistry::Tools::add("hex.builtin.tools.demangler", drawDemangler);
|
||||||
ContentRegistry::Tools::add("hex.builtin.tools.ascii_table", drawASCIITable);
|
ContentRegistry::Tools::add("hex.builtin.tools.ascii_table", drawASCIITable);
|
||||||
@ -1154,6 +1315,7 @@ namespace hex::plugin::builtin {
|
|||||||
ContentRegistry::Tools::add("hex.builtin.tools.file_uploader", drawFileUploader);
|
ContentRegistry::Tools::add("hex.builtin.tools.file_uploader", drawFileUploader);
|
||||||
ContentRegistry::Tools::add("hex.builtin.tools.wiki_explain", drawWikiExplainer);
|
ContentRegistry::Tools::add("hex.builtin.tools.wiki_explain", drawWikiExplainer);
|
||||||
ContentRegistry::Tools::add("hex.builtin.tools.file_tools", drawFileTools);
|
ContentRegistry::Tools::add("hex.builtin.tools.file_tools", drawFileTools);
|
||||||
|
ContentRegistry::Tools::add("hex.builtin.tools.ieee756", drawIEEE756Helper);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -641,6 +641,20 @@ namespace hex::plugin::builtin {
|
|||||||
{ "hex.builtin.tools.file_tools.combiner.error.open_output", "Erstellen der Zieldatei fehlgeschlagen" },
|
{ "hex.builtin.tools.file_tools.combiner.error.open_output", "Erstellen der Zieldatei fehlgeschlagen" },
|
||||||
{ "hex.builtin.tools.file_tools.combiner.open_input", "Öffnen der Inputdatei {0} fehlgeschlagen" },
|
{ "hex.builtin.tools.file_tools.combiner.open_input", "Öffnen der Inputdatei {0} fehlgeschlagen" },
|
||||||
{ "hex.builtin.tools.file_tools.combiner.success", "Dateien erfolgreich kombiniert!" },
|
{ "hex.builtin.tools.file_tools.combiner.success", "Dateien erfolgreich kombiniert!" },
|
||||||
|
{ "hex.builtin.tools.ieee756", "IEEE 756 Fliesskommazahl Tester" },
|
||||||
|
{ "hex.builtin.tools.ieee756.sign", "Vorzeichen" },
|
||||||
|
{ "hex.builtin.tools.ieee756.exponent", "Exponent" },
|
||||||
|
{ "hex.builtin.tools.ieee756.mantissa", "Mantisse" },
|
||||||
|
{ "hex.builtin.tools.ieee756.exponent_size", "Exponentengrösse" },
|
||||||
|
{ "hex.builtin.tools.ieee756.mantissa_size", "Mantissengrösse" },
|
||||||
|
{ "hex.builtin.tools.ieee756.half_precision", "Half Precision" },
|
||||||
|
{ "hex.builtin.tools.ieee756.singe_precision", "Single Precision" },
|
||||||
|
{ "hex.builtin.tools.ieee756.double_precision", "Double Precision" },
|
||||||
|
{ "hex.builtin.tools.ieee756.type", "Typ" },
|
||||||
|
{ "hex.builtin.tools.ieee756.formula", "Formel" },
|
||||||
|
{ "hex.builtin.tools.ieee756.result.title", "Resultat" },
|
||||||
|
{ "hex.builtin.tools.ieee756.result.float", "Fliesskomma Resultat" },
|
||||||
|
{ "hex.builtin.tools.ieee756.result.hex", "Hexadezimal Resultat" },
|
||||||
|
|
||||||
{ "hex.builtin.setting.imhex", "ImHex" },
|
{ "hex.builtin.setting.imhex", "ImHex" },
|
||||||
{ "hex.builtin.setting.imhex.recent_files", "Kürzlich geöffnete Dateien" },
|
{ "hex.builtin.setting.imhex.recent_files", "Kürzlich geöffnete Dateien" },
|
||||||
|
@ -645,6 +645,20 @@ namespace hex::plugin::builtin {
|
|||||||
{ "hex.builtin.tools.file_tools.combiner.error.open_output", "Failed to create output file" },
|
{ "hex.builtin.tools.file_tools.combiner.error.open_output", "Failed to create output file" },
|
||||||
{ "hex.builtin.tools.file_tools.combiner.open_input", "Failed to open input file {0}" },
|
{ "hex.builtin.tools.file_tools.combiner.open_input", "Failed to open input file {0}" },
|
||||||
{ "hex.builtin.tools.file_tools.combiner.success", "Files combined successfully!" },
|
{ "hex.builtin.tools.file_tools.combiner.success", "Files combined successfully!" },
|
||||||
|
{ "hex.builtin.tools.ieee756", "IEEE 756 Floating Point Tester" },
|
||||||
|
{ "hex.builtin.tools.ieee756.sign", "Sign" },
|
||||||
|
{ "hex.builtin.tools.ieee756.exponent", "Exponent" },
|
||||||
|
{ "hex.builtin.tools.ieee756.mantissa", "Mantissa" },
|
||||||
|
{ "hex.builtin.tools.ieee756.exponent_size", "Exponent Size" },
|
||||||
|
{ "hex.builtin.tools.ieee756.mantissa_size", "Mantissa Size" },
|
||||||
|
{ "hex.builtin.tools.ieee756.half_precision", "Half Precision" },
|
||||||
|
{ "hex.builtin.tools.ieee756.singe_precision", "Single Precision" },
|
||||||
|
{ "hex.builtin.tools.ieee756.double_precision", "Double Precision" },
|
||||||
|
{ "hex.builtin.tools.ieee756.type", "Type" },
|
||||||
|
{ "hex.builtin.tools.ieee756.formula", "Formula" },
|
||||||
|
{ "hex.builtin.tools.ieee756.result.title", "Result" },
|
||||||
|
{ "hex.builtin.tools.ieee756.result.float", "Floating Point Result" },
|
||||||
|
{ "hex.builtin.tools.ieee756.result.hex", "Hexadecimal Result" },
|
||||||
|
|
||||||
{ "hex.builtin.setting.imhex", "ImHex" },
|
{ "hex.builtin.setting.imhex", "ImHex" },
|
||||||
{ "hex.builtin.setting.imhex.recent_files", "Recent Files" },
|
{ "hex.builtin.setting.imhex.recent_files", "Recent Files" },
|
||||||
|
@ -646,6 +646,20 @@ namespace hex::plugin::builtin {
|
|||||||
{ "hex.builtin.tools.file_tools.combiner.error.open_output", "Impossibile creare file di output" },
|
{ "hex.builtin.tools.file_tools.combiner.error.open_output", "Impossibile creare file di output" },
|
||||||
{ "hex.builtin.tools.file_tools.combiner.open_input", "Impossibile aprire file di input {0}" },
|
{ "hex.builtin.tools.file_tools.combiner.open_input", "Impossibile aprire file di input {0}" },
|
||||||
{ "hex.builtin.tools.file_tools.combiner.success", "File combinato con successo!" },
|
{ "hex.builtin.tools.file_tools.combiner.success", "File combinato con successo!" },
|
||||||
|
//{ "hex.builtin.tools.ieee756", "IEEE 756 Floating Point Tester" },
|
||||||
|
//{ "hex.builtin.tools.ieee756.sign", "Sign" },
|
||||||
|
//{ "hex.builtin.tools.ieee756.exponent", "Exponent" },
|
||||||
|
//{ "hex.builtin.tools.ieee756.mantissa", "Mantissa" },
|
||||||
|
//{ "hex.builtin.tools.ieee756.exponent_size", "Exponent Size" },
|
||||||
|
//{ "hex.builtin.tools.ieee756.mantissa_size", "Mantissa Size" },
|
||||||
|
//{ "hex.builtin.tools.ieee756.half_precision", "Half Precision" },
|
||||||
|
//{ "hex.builtin.tools.ieee756.singe_precision", "Single Precision" },
|
||||||
|
//{ "hex.builtin.tools.ieee756.double_precision", "Double Precision" },
|
||||||
|
//{ "hex.builtin.tools.ieee756.type", "Type" },
|
||||||
|
//{ "hex.builtin.tools.ieee756.formula", "Formula" },
|
||||||
|
//{ "hex.builtin.tools.ieee756.result.title", "Result" },
|
||||||
|
//{ "hex.builtin.tools.ieee756.result.float", "Floating Point Result" },
|
||||||
|
//{ "hex.builtin.tools.ieee756.result.hex", "Hexadecimal Result" },
|
||||||
|
|
||||||
{ "hex.builtin.setting.imhex", "ImHex" },
|
{ "hex.builtin.setting.imhex", "ImHex" },
|
||||||
{ "hex.builtin.setting.imhex.recent_files", "File recenti" },
|
{ "hex.builtin.setting.imhex.recent_files", "File recenti" },
|
||||||
|
@ -646,6 +646,20 @@ namespace hex::plugin::builtin {
|
|||||||
{ "hex.builtin.tools.file_tools.combiner.error.open_output", "出力ファイルを作成できませんでした" },
|
{ "hex.builtin.tools.file_tools.combiner.error.open_output", "出力ファイルを作成できませんでした" },
|
||||||
{ "hex.builtin.tools.file_tools.combiner.open_input", "入力ファイル {0} を開けませんでした" },
|
{ "hex.builtin.tools.file_tools.combiner.open_input", "入力ファイル {0} を開けませんでした" },
|
||||||
{ "hex.builtin.tools.file_tools.combiner.success", "ファイルの結合に成功しました!" },
|
{ "hex.builtin.tools.file_tools.combiner.success", "ファイルの結合に成功しました!" },
|
||||||
|
//{ "hex.builtin.tools.ieee756", "IEEE 756 Floating Point Tester" },
|
||||||
|
//{ "hex.builtin.tools.ieee756.sign", "Sign" },
|
||||||
|
//{ "hex.builtin.tools.ieee756.exponent", "Exponent" },
|
||||||
|
//{ "hex.builtin.tools.ieee756.mantissa", "Mantissa" },
|
||||||
|
//{ "hex.builtin.tools.ieee756.exponent_size", "Exponent Size" },
|
||||||
|
//{ "hex.builtin.tools.ieee756.mantissa_size", "Mantissa Size" },
|
||||||
|
//{ "hex.builtin.tools.ieee756.half_precision", "Half Precision" },
|
||||||
|
//{ "hex.builtin.tools.ieee756.singe_precision", "Single Precision" },
|
||||||
|
//{ "hex.builtin.tools.ieee756.double_precision", "Double Precision" },
|
||||||
|
//{ "hex.builtin.tools.ieee756.type", "Type" },
|
||||||
|
//{ "hex.builtin.tools.ieee756.formula", "Formula" },
|
||||||
|
//{ "hex.builtin.tools.ieee756.result.title", "Result" },
|
||||||
|
//{ "hex.builtin.tools.ieee756.result.float", "Floating Point Result" },
|
||||||
|
//{ "hex.builtin.tools.ieee756.result.hex", "Hexadecimal Result" },
|
||||||
|
|
||||||
{ "hex.builtin.setting.imhex", "ImHex" },
|
{ "hex.builtin.setting.imhex", "ImHex" },
|
||||||
{ "hex.builtin.setting.imhex.recent_files", "最近開いたファイル" },
|
{ "hex.builtin.setting.imhex.recent_files", "最近開いたファイル" },
|
||||||
|
@ -639,6 +639,20 @@ namespace hex::plugin::builtin {
|
|||||||
{ "hex.builtin.tools.file_tools.combiner.error.open_output", "创建输出文件失败!" },
|
{ "hex.builtin.tools.file_tools.combiner.error.open_output", "创建输出文件失败!" },
|
||||||
{ "hex.builtin.tools.file_tools.combiner.open_input", "打开输入文件 {0} 失败" },
|
{ "hex.builtin.tools.file_tools.combiner.open_input", "打开输入文件 {0} 失败" },
|
||||||
{ "hex.builtin.tools.file_tools.combiner.success", "文件合并成功!" },
|
{ "hex.builtin.tools.file_tools.combiner.success", "文件合并成功!" },
|
||||||
|
//{ "hex.builtin.tools.ieee756", "IEEE 756 Floating Point Tester" },
|
||||||
|
//{ "hex.builtin.tools.ieee756.sign", "Sign" },
|
||||||
|
//{ "hex.builtin.tools.ieee756.exponent", "Exponent" },
|
||||||
|
//{ "hex.builtin.tools.ieee756.mantissa", "Mantissa" },
|
||||||
|
//{ "hex.builtin.tools.ieee756.exponent_size", "Exponent Size" },
|
||||||
|
//{ "hex.builtin.tools.ieee756.mantissa_size", "Mantissa Size" },
|
||||||
|
//{ "hex.builtin.tools.ieee756.half_precision", "Half Precision" },
|
||||||
|
//{ "hex.builtin.tools.ieee756.singe_precision", "Single Precision" },
|
||||||
|
//{ "hex.builtin.tools.ieee756.double_precision", "Double Precision" },
|
||||||
|
//{ "hex.builtin.tools.ieee756.type", "Type" },
|
||||||
|
//{ "hex.builtin.tools.ieee756.formula", "Formula" },
|
||||||
|
//{ "hex.builtin.tools.ieee756.result.title", "Result" },
|
||||||
|
//{ "hex.builtin.tools.ieee756.result.float", "Floating Point Result" },
|
||||||
|
//{ "hex.builtin.tools.ieee756.result.hex", "Hexadecimal Result" },
|
||||||
|
|
||||||
{ "hex.builtin.setting.imhex", "ImHex" },
|
{ "hex.builtin.setting.imhex", "ImHex" },
|
||||||
{ "hex.builtin.setting.imhex.recent_files", "最近文件" },
|
{ "hex.builtin.setting.imhex.recent_files", "最近文件" },
|
||||||
|
Loading…
x
Reference in New Issue
Block a user