সংক্ষিপ্ততম হেক্স ডাম্পিং প্রোগ্রাম


13

চ্যালেঞ্জ

একটি ফাইলের প্রতিটি বাইট প্রদর্শনের জন্য একটি কনসোল প্রোগ্রাম তৈরি করুন।


জয়লাভ

যেহেতু এটি , তাই খুব কম বাইট জিতেছে।


বিধি

  • প্রোগ্রামটি অবশ্যই একটি কনসোল অ্যাপ্লিকেশন হতে হবে যার অর্থ এটি কোনও কমান্ড-লাইন ইন্টারপ্রেটার থেকে চালানো হবে;
  • প্রতিটি বাইট অবশ্যই বড় হাতের অক্ষের হতে হবে, একটি স্থান দ্বারা পৃথক, এবং এটি 2 ডিজিটের হতে হবে; (এটির 1 নম্বর হলে এর আগে 0 নম্বর দিন)
  • ফাইলটি অবশ্যই IO বা বিকল্প ব্যবহার করে পড়তে হবে , এবং হার্ড-কোডড নয়;
  • ফাইল পাথটি অবশ্যই একটি কমান্ড-লাইন আর্গুমেন্ট বা ব্যবহারকারী প্রম্পট (STDIN এর মতো) হিসাবে নির্দিষ্ট করতে হবে ;
  • দয়া করে কোন ফাঁকফোকর নেই ;

উদাহরণ

test.txt (এলএফ দিয়ে শেষ হয়)

Hello World!

$ ./hexdump.exe test.txt
48 65 6C 6C 6F 20 57 6F 72 6C 64 21 0A

16
@ ফেসপালম 42 ফেসপালগুলি এড়ানোর জন্য, স্যান্ডবক্সগুলি পোস্ট করার আগে ভবিষ্যতের চ্যালেঞ্জগুলি ডিজাইন করতে আপনাকে সহায়তা করার জন্য আমি দৃ strongly়ভাবে পরামর্শ দিচ্ছি।
অ্যাডম

2
স্ক্রিনে ফিট না হলে কীভাবে একসাথে সমস্ত বাইট মান প্রকাশ করা সম্ভব? স্ক্রোলিং স্পষ্টভাবে "একবারে" নয়। এছাড়াও, (একটি ফাংশন) স্রেফ মানগুলি ফিরিয়ে দেওয়ার ক্ষেত্রে কী দোষ আছে?
অ্যাডম

7
@ ফেসপালম 42 অনুগ্রহ করে চ্যালেঞ্জ পোস্ট করার পরে এত দিন স্পেকটি পরিবর্তন করবেন না। আসল পোস্টটি হেক্সাডেসিমাল সংখ্যাগুলির সঠিক বিন্যাসটি নির্দিষ্ট করে না, এটি উত্তরদাতাদের কাছে রেখে দেয়। আপনার সর্বশেষ সম্পাদনাটি আমার বিদ্যমান উত্তরটিকে বাতিল করে দিয়েছে!
অ্যাডম

11
আপনি কেবল কমান্ড-লাইন আর্গুমেন্ট বা ব্যবহারকারী প্রম্পটকে অনুমতি দেওয়ার কোনও নির্দিষ্ট কারণ আছে? উদাহরণস্বরূপ ফাইলটির নাম একটি ফাংশন আর্গুমেন্ট হিসাবে গ্রহণে কী সমস্যা?
অ্যাডম

3
এটি সহায়ক হবে যদি আপনার কাছে একটি ইনপুটhello.txt হিসাবে উদাহরণ হিসাবে একটি সাধারণ পাঠ্য ফাইল থাকে এবং প্রত্যাশিত আউটপুটটি কী হওয়া উচিত। উদাহরণস্বরূপ, যদি কেবল একটি লাইন বিরতি সহ শব্দটি থাকে তবে আউটপুটটিতে এটি কীভাবে প্রকাশ করা হবে? আপনি কি 16-বিট, 32-বিট বা 64-বিট শব্দগুলিতে বাইটগুলি গ্রুপ করছেন? অথবা প্রতিটি বাইট দুটি অঙ্কের হেক্স হিসাবে প্রকাশ করা হয়? হেক্স হিসাবে প্রতিটি বাইটের পরে, বা প্রতিটি এক্স-বিট শব্দের পরে স্পেসগুলি গ্রহণযোগ্য? আপনার কি প্রতিটি বাইটের জন্য একটি প্রি-ফিক্স দরকার? hello.txthello0x
শান বেবারস

উত্তর:


11

* নিক্সে সি (জিসিসি) , 73 71 বাইট

i;main(c,v)int**v;{for(c=open(v[1],0);read(c,&i,1);printf("%02X ",i));}

এটি অনলাইন চেষ্টা করুন! পরীক্ষা স্যুট

-2 বাইট জোহান ডু টোইটকে ধন্যবাদ জানায়

এটি নির্ভর করে O_RDONLY == 0এবং int_one == 1কোথায় int int_one; *(char*)&int_one = 1;



6

এটি কি কোনও ফাইলের বিষয়বস্তুকে প্রোগ্রাম আর্গুমেন্ট হিসাবে কোনও ফাইল-পাথ দেয়? টিআইওর উপর ভিত্তি করে এটি কেবল এসটিডিইএন থেকে পড়েছে বলে মনে হচ্ছে, তবে রুবিকে এটি সঠিক নয় বলে আমি যথেষ্ট পরিমাণে জানি না।
কেভিন ক্রুইজসেন

1
@ কেভিন ক্রুইজসেন হ্যাঁ, এটি ফাইলের পথ (গুলি) কে প্রোগ্রাম আর্গুমেন্ট হিসাবে গ্রহণ করে। যদি কোনও যুক্তি না থাকে $<তবে পরিবর্তে STDIN থেকে পড়তে স্যুইচ করুন।
মান কালি

6

পাওয়ারশেল , 45 40 বাইট

"$(gc $args -ra|% *ay|%{'{0:X2}'-f+$_})"

এটি অনলাইন চেষ্টা করুন!

-5 বাইট মজির ধন্যবাদ


জন্য ধন্যবাদ ./.input.tio। সিআরএলএফ সহ 40 বাইট সংরক্ষণ করা হয়েছে।
মজজি


6

জাভা 11, 156 154 বাইট

import java.nio.file.*;interface M{static void main(String[]a)throws Exception{for(int b:Files.readAllBytes(Path.of(a[0])))System.out.printf("%02X ",b);}}

-2 ধন্যবাদ বাইট @Holger করতে

এটি./.input.tio আর্গুমেন্ট ফাইল-পাথ হিসাবে অনলাইনে ব্যবহার করে দেখুন, এতে ফাইল-সামগ্রী হিসাবে প্রদত্ত ইনপুট থাকবে।

ব্যাখ্যা:

import java.nio.file.*;        // Required import for Files and Paths
interface M{                   // Class
  static void main(String[]a)  //  Mandatory main method
      throws Exception{        //  With mandatory thrown clause for the readAllBytes builtin
                                         a[0]    // Get the first argument
                                 Path.of(    )   // Get the file using that argument as path
              Files.readAllBytes(             )  // Get all bytes from this file
    for(int b:                                 ) // Loop over each of them:
      System.out.printf(                         //  And print the current byte
                        "%02X ",b);}}            //  As uppercase hexadecimal with leading 0
                                                 //  and trailing space as delimiter

interfaceপরিবর্তে ব্যবহার করার পিছনে যুক্তি কি class?
জ্যাকডট

4
@ জ্যাকডট মূলটি সর্বজনীন হওয়া প্রয়োজন, ইন্টারফেসের পদ্ধতিগুলি সর্বদা সর্বজনীন থাকে, + এর interfaceচেয়ে কম হয় । classpublic
গ্রিমি

3
জাভা 11 দিয়ে আপনি এর Path.ofপরিবর্তে ব্যবহার করতে পারেনPaths.get
হলগার

1
@ হোলগার ধন্যবাদ! :)
কেভিন ক্রুইজসেন

2
জাভা ৯ এর পর থেকে গ্রিমি, ইন্টারফেসের পদ্ধতিগুলি সবসময় হয় না তবে স্পষ্টভাবে ঘোষণা না করা পর্যন্ত publicসেগুলি হয় । publicprivate
হলগার

6

পিএইচপি , 60 59 54 বাইট

<?=wordwrap(bin2hex(implode(file($argv[1]))),2,' ',1);
  • -1 বাইট ধন্যবাদ মনঃশেকাটজকে
  • -5 বাইট ব্ল্যাকহোলকে ধন্যবাদ

এটি অনলাইন চেষ্টা করুন!


1
পিছনে ফেলে ?>2 বাইট সংরক্ষণ করতে সক্ষম হওয়া উচিত , বা যদি এটি কাজ না করে তবে ?>সেমিকোলন দিয়ে প্রতিস্থাপন করুন এবং 1 বাইট সংরক্ষণ করুন।
মনাসেখ্যাটজ-মুভিং 2 কোডিড্যাক্ট

2
(-4 বাইট) এর implode(file($x))পরিবর্তে ব্যবহার করুন file_get_contents($x)
ব্ল্যাকহোল 13

2
এবং wordwrap(), 1সর্বশেষ প্যারামিটার হিসাবে, এক বাইটের চেয়ে ছোট chunk_split()
ব্ল্যাকহোল


4

এপিএল (ডায়ালগ ইউনিকোড) , 16 বাইট

বেনামে ট্যাসিট প্রিফিক্স ফাংশন। শীর্ষ সারিতে দশমিক সংখ্যার 0-15 হিসাবে উপস্থাপিত শীর্ষ 4 বিট এবং নীচের সারিতে একইভাবে উপস্থাপিত নীচে 4 বিট সহ দুটি সারি ম্যাট্রিক্স প্রত্যাবর্তন করে (এবং স্পষ্টভাবে মুদ্রণ করে), মানটি অন্যথায় গ্রাস করা হয় না। অর্থাৎ ম্যাট্রিক্সের যতগুলি কলাম রয়েছে ফাইলের বাইট রয়েছে।

16 1683 ¯1∘⎕MAP

এটি অনলাইন চেষ্টা করুন!

⎕MAP
 প্যারামিটার সহ  একটি অ্যারেতে আর্গুমেন্ট ফাইলের নাম ম্যাপ করুন :
¯1 ফাইলটির পুরো দৈর্ঘ্য
83 8-বিট পূর্ণসংখ্যা হিসাবে পড়া হয়

16 16⊤ (অ্যান্টি-বেস) 2-অবস্থানের হেক্সাডেসিমালে রূপান্তর করুন


1
@ ফেসপালাম 42 এটি হেক্সাডেসিমালে খুব বেশি। উদাহরণস্বরূপ H72, যা 4 × 16¹ + 8 × 16⁰ বা [4,8] ₁₆ ₁₆ অত: পর উদাহরণে প্রথম কলামটি লেখা [4,8]
Adám

ওহ, আমি পুরোপুরি ভুলে গেছি! দুঃখিত।
ফেসপাম 42

4

পাইথন 3, 59 বাইট

-11 বাইটসকে বেশিরভাগ ক্ষতিগ্রস্থকে ধন্যবাদ!

-8 বাইটস ধন্যবাদ জেমস কে পোल्कকে!

-২৪ বাইট ধন্যবাদ ব্লু!

print(' '.join('%02X'%ord(i)for i in open(input()).read()))

এটি অনলাইন চেষ্টা করুন!

এই বেশ সহজ; এটি এসটিডিআইএন-এ ইনপুট হিসাবে প্রদত্ত একটি ফাইলের নাম খোলে, এটি পড়ে, প্রতিটি অক্ষরকে তার এএসসিআইআই মান হিসাবে রূপান্তর করে, প্রতিটি সংখ্যাকে হেক্সে রূপান্তরিত করে, "0x"পাইথনের হেক্সাডেমিক্যাল মানগুলির পূর্বে স্ট্রিপগুলি সরিয়ে দেয়, প্রয়োজনে শূন্যের সাথে মানকে প্যাড করে, তারপর মানগুলিতে যোগ দেয় একসাথে স্পেস।


'%02X'%ord(i)হেক্সের আউটপুট কেটে ফেলার পরিবর্তে কয়েকটি বাইট সংরক্ষণ করতে পারে
বেশিরভাগ ক্ষতিগ্রস্থ

নিবন্ধন করুন -11 বাইট। ধন্যবাদ!
এমপি প্রোগ্রামার

কীভাবে '% 02 x' এর পরিবর্তে '% 02X', এবং এর থেকে মুক্তি পাবেন.upper()
রাষ্ট্রপতি জেমস মুভন পোल्क

পরিবর্তে ফাইলের নাম হিসাবে import sysব্যবহার করে আপনি বাইটগুলি সংরক্ষণ করতে পারেন raw_input(); বিধিগুলি ব্যবহারকারীকে অনুরোধ জানাতে অনুমতি দেয়।
নীল

ব্লু ধন্যবাদ! এবং এটি পাইথন 3 এ আরও ছোট, যেখানে আপনি কেবল করতে পারেনinput()
এমপিপ্রগ্রামার

3

বাশ ,  33  23 বাইট

... অনেক সাহায্যের সাথে:
-3 মানটওয়ার্ককে
ধন্যবাদ -4 স্পর্শের জন্য
ধন্যবাদ -3 ধন্যবাদ নাহুয়েল ফুইলুলকে

echo `xxd -c1 -p -u $1`

এটি অনলাইন চেষ্টা করুন!

লক্ষ্য করুন ব্যবহারসমূহ ইনপুট উপরে Tio লিংক - আমরা ফাইল স্থানীয়ভাবে, লিখতে পারেন, যাতে এই শো এটি একটি প্রোগ্রাম একটি ফাইল পাথ গ্রহণ হিসেবে কাজ।


মাইনর কমানোর: xxd -u -p $1|fold -2|tr \\n \
manatwork

ধন্যবাদ, আপনার কোন ধারণা কিভাবে পেতে \nএবং \ 'এই' লিঙ্কটি সংস্করণে কাজ কিভাবে? সম্পাদনা: আমি আরও একটি পালানোর চরিত্র যুক্ত করেছি।
জোনাথন অ্যালান

যদি আমি আপনাকে সঠিকভাবে বুঝতে পারি তবে আপনি কেবল ডাবল উদ্ধৃতি থেকে একক উদ্ধৃতিতে পরিবর্তন করতে চান: অনলাইনে চেষ্টা করে দেখুন!
manatwork

দুর্দান্ত আপনাকে ধন্যবাদ!
জোনাথন অ্যালান

xxd -c1 -p -u $1|tr \\n \
spuck

3

কোটলিন , 130 127 104 93 92 বাইট

fun main(a:Array<String>){java.io.File(a[0]).readBytes().forEach{print("%02X ".format(it))}}

এটি অনলাইন চেষ্টা করুন!

সম্পাদনা করুন: -11 বাইটস @ ক্রিস্পার্টনকে ধন্যবাদ

সম্পাদনা: টিআইও কাজ করছে

সম্পাদনা: -1 বাইট @ কেভিন ক্রুজসেনকে ধন্যবাদ thanks


1
আপনার দ্বারা আমদানি এবং রেফারেন্স খানা গেল Fileযেমন java.io.Fileপরিবর্তে?
ক্রিস পার্টন

@ ক্রিসপার্টন ঠিক আছে আপনি, ধন্যবাদ!
কুইন

এখানে একটি কর্মরত টিআইও। আপনি ./.input.tioফাইল-পাথ আর্গুমেন্ট হিসাবে ব্যবহার করতে পারেন , এবং এটি ফাইল-সামগ্রী হিসাবে STDIN ব্যবহার করবে। :)
কেভিন ক্রুইজসেন

@ কেভিন ক্রুজসেন ধন্যবাদ! সবেমাত্র আপডেট উত্তর
কুইন

1
আমি কোটলিনকে জানি না, তবে আমি যদি জায়গাটি সরিয়ে ফেলি তবে টিআইও এখনও কাজ করে a:Array, তাই আমি মনে করি আপনি একটি বাইট সংরক্ষণ করতে পারেন।
কেভিন ক্রুইজসেন

2

ডার্ট , 140 134 বাইট

import'dart:io';main(a){print(new File(a[0]).readAsBytesSync().map((n)=>n.toRadixString(16).toUpperCase().padLeft(2,'0')).join(' '));}

এটি অনলাইন চেষ্টা করুন!

-6 বাইট কারণ আমি পরিবর্তনশীল নাম কমাতে ভুলে গেছি


ডার্টের জন্য +1। এ জাতীয় আন্ডাররেটেড ভাষা।
ভ্যাসিলেস্কুর

গল্ফ করা কঠিন, যেহেতু এটি মূলত খুব শিথিল টাইপ সিস্টেম ছাড়া জেএস
এলকান

2

হাস্কেল, 145 143 বাইট

import System.Environment
import Text.Printf
import Data.ByteString
main=getArgs>>=Data.ByteString.readFile.(!!0)>>=mapM_(printf"%02X ").unpack

1
কিছুটা খাটো: import Data.ByteStringপ্লাস main=getArgs>>=Data.ByteString.readFile.(!!0)>>=mapM_(printf"%02X ").unpack
নিমি

2

মরিচা, 141 বাইট (অবদানীকৃত সংস্করণ)

use std::{io::*,fs::*,env::*};fn main(){for x in File::open(args().nth(1).unwrap()).unwrap().bytes(){print!("{:02X} ",x.unwrap())}println!()}

মরিচা, 151 বাইট (মূল সংস্করণ)

fn main(){std::io::Read::bytes(std::fs::File::open(std::env::args().nth(1).unwrap()).unwrap()).map(|x|print!("{:02X} ",x.unwrap())).count();println!()}


2

বাশ + স্ট্যাক্স, 6 + 4 + 1 = 11 বাইট

এটি এই মুহুর্তে সম্পূর্ণ থিয়োরি ক্রাফট। আপনি আসলে এটি চালাতে পারবেন না। সবকিছু যদি তার স্পেস অনুসারে কাজ করে তবে এটি কাজ করবে, তবে সবকিছু এখনও কার্যকর করে না।

বাশ স্ক্রিপ্টটি হ'ল

]<$1

এবং স্ট্যাক্স প্রোগ্রামটি অবশ্যই সংকলন এবং এতে সংরক্ষণ করা উচিত]

╛↕ßú┼_

আপনার অক্ষরটি আইএসও 8859-1 এ সেট করুন (উইন্ডোজ -১২২২ এখানে কাজ করবে না) এবং যান

প্যাকযুক্ত এবং ব্যাখ্যা করা হয়েছে

_          push all input as a single array
F          run the rest of the program for each element of the array
 |H        write the hex of the byte to standard output
 |         write a space to standard output

2

ইমোজিকোড , 186 162 বাইট

📦files🏠🏁🍇🔂b🍺📇🐇📄🆕🔡👂🏼❗️❗️🍇👄📫🍪🔪🔡🔢b❗️➕256 16❗️1 2❗️🔤 🔤🍪❗️❗️🍉🍉

এটি এখানে অনলাইনে চেষ্টা করুন।

Ungolfed:

📦 files 🏠  💭 Import the files package into the default namespace
🏁 🍇  💭 Main code block
🔂 b  💭 For each b in ...
  🍺  💭 (ignoring IO errors)
  📇 🐇 📄  💭 ... the byte representation of the file ...
  🆕 🔡 👂🏼  💭 ... read from user input:
  ❗️ ❗️ 🍇
    👄  💭 Print ...
    📫  💭 ... in upper case (numbers in bases > 10 are in lower case) ...
    🍪  💭 ... the concatenation of:
      🔪 🔡 🔢 b ❗️ ➕ 256  💭 b + 256 (this gives the leading zero in case the hex representation of b is a single digit) ...
              16  💭 ... represented in hexadecimal ...
           ❗️
         1 2  💭 ... without the leading one,
      ❗️
      🔤 🔤  💭 ... and a space
    🍪
    ❗️❗️
  🍉
🍉

2

পার্ল 6 , 45 বাইট

@*ARGS[0].IO.slurp(:bin).list.fmt('%02X').say

এটি অনলাইন চেষ্টা করুন!

  • @*ARGS[0] প্রথম কমান্ড-লাইন আর্গুমেন্ট।
  • .IOযে (অনুমিত) ফাইলের নাম একটি IO::Pathবস্তুতে পরিণত করে।
  • .slurp(:bin)Bufবাইটের বাফারে পুরো ফাইলটি পড়ে । ( :binফাইল ছাড়া বিষয়বস্তুগুলি ইউনিকোড স্ট্রিং হিসাবে ফিরে আসবে))
  • .list বাফার থেকে বাইট মানগুলির একটি তালিকা ফেরত দেয়।
  • .fmt('%02X')এমন একটি Listপদ্ধতি যা প্রদত্ত বিন্যাসের স্ট্রিংটি ব্যবহার করে তালিকার উপাদানগুলিকে ফর্ম্যাট করে, তারপরে ফাঁকা স্থানের সাথে তাদের সাথে যোগ দেয়। (সুবিধাজনক!)
  • .say মুদ্রণ যে স্ট্রিং।

পাইথন উত্তরের উপর ভিত্তি করে, একটি টিআইও লিঙ্ক বাস্তবে যথেষ্ট সম্ভব।
ড্রাকো

কিছু পুনরায় সাজানো 41 বাইটের.list জন্য মুছে ফেলতে পারে
জো কিং


1

পাইথন 3, 75 বাইট

ম্যাক্সওয়েলের অজগর 2 উত্তরের একটি অনুলিপি

import sys
print(' '.join('%02X'%b for b in open(sys.argv[1],'rb').read()))

আপনি সম্ভবত বলতে চাইছেন sys.argv[1]। সঙ্গে sys.argv[0]এই স্ক্রিপ্টটি আরো একটি quine মত ;-) কাজ করে
anion

@ অ্যানিওন: ওফস, হা, ফিক্সিং ...
রাষ্ট্রপতি জেমস মুভন পোल्क

1

র‌্যাকেট, 144 বাইট

এই জমাটি আউটপুটটি একটি ট্রেলিং স্পেস করে এবং কোনও নতুন পেজ নেই। এটি যদি একটি ফাঁক হিসাবে বিবেচনা করা হয় তবে আমাকে জানান:

(command-line #:args(f)(for([b(call-with-input-file f port->bytes)])(printf"~a "(string-upcase(~r b #:base 16 #:min-width 2 #:pad-string"0")))))

পরিষ্কার করা হয়েছে

(command-line #:args (f)
 (for ([b (call-with-input-file f port->bytes)])
   (printf "~a "
           (string-upcase
            (~r b #:base 16 #:min-width 2 #:pad-string "0")))))

1

ফোর্থ (গফার্থ) , 71 বাইট

: f slurp-file hex 0 do dup c@ 0 <# # # #> type space 1+ loop ;
1 arg f

এটি অনলাইন চেষ্টা করুন!

টিআইওর 3 argশেষ লাইনে রয়েছে কারণ টিআইও কোড পাস করার আগে কমান্ড লাইন পার্সারের কাছে "বাই বাই" পাস করে

কোড ব্যাখ্যা

: f             \ start a function definition
  slurp-file    \ open the file indicated by the string on top of the stack,
                \ then put its contents  in a new string on top of the stack
  hex           \ set the interpreter to base 16
  0 do          \ loop from 0 to file-length - 1 (inclusive)
    dup c@      \ get the character value from the address on top of the stack
    0 <# # # #> \ convert to a double-length number then convert to a string of length 2
    type        \ output the created string 
    space       \ output a space 
    1+          \ add 1 to the current address value
  loop          \ end the loop
;               \ end the word definition
1 arg f         \ get the filename from the first command-line argument and call the function

1

জাভাস্ক্রিপ্ট, 155 বাইট

for(b=WScript,a=new ActiveXObject("Scripting.FileSystemObject").OpenTextFile(b.Arguments(0));;b.echo(('0'+a.read(1).charCodeAt(0).toString(16)).slice(-2)))

1

ভিবিএস স্ক্রিপ্ট, 143 বাইট

set a=CreateObject("Scripting.FileSystemObject").OpenTextFile(WScript.Arguments(0)):while 1 WScript.echo(right("0"+Hex(Asc(a.read(1))),2)):wend

1

ওল্ফ্রাম ভাষা (গণিত) , 94 89 বাইট a

Print@ToUpperCase@StringRiffle@IntegerString[BinaryReadList@Last@$ScriptCommandLine,16,2]

এটি অনলাইন চেষ্টা করুন!

দীর্ঘ কমান্ডের নামগুলির কারণে কোডটি বেশ স্ব-বর্ণনামূলক। এটি বেশিরভাগ ডান থেকে বামে পড়তে হবে:

$ScriptCommandLine       is a list of {scriptname, commandlinearg1, commandlinearg2, ...}
Last@...                 extracts the last command-line argument
BinaryReadList@...       reads the named file into a list of bytes
IntegerString[...,16,2]  converts each byte to a 2-digit hex string (lowercase)
StringRiffle@...         converts this list of strings into a single string with spaces
ToUpperCase@...          converts the string to uppercase
Print@...                prints the result to stdout


1

পাইথ , 12 বাইট

jdcr1.Hjb'w2

এটি অনলাইন চেষ্টা করুন!

ব্যবহারকারী প্রম্পট হিসাবে ইনপুট নেয় (কমান্ড-লাইন আর্গুমেন্ট AFAIK অ্যাক্সেস করার কোনও উপায় নয়)।

jd           # join on spaces
  c        2 # chop into pieces of length 2
   r1        # convert to uppercase
     .H      # convert to hex string, interpreting as base 256 (*)
       jb    # join on newlines
         '   # read file as list of lines
          w  # input()

(*) এটির উদ্দেশ্য হয় কিনা আমি 100% নিশ্চিত নই, তবে একটি বেস 256 ডিজিট (যেমন একটি চরিত্র হিসাবে) সর্বদা 2 হেক্স অঙ্কে রূপান্তরিত হবে, জিরো দিয়ে প্যাডের প্রয়োজনীয়তা বাদ দিয়ে।


1

নোড.জেএস, 118 বাইট

console.log([...require("fs").readFileSync(process.argv[2])].map(y=>(y<16?0:"")+y.toString(16).toUpperCase()).join` `)

ফলাফলটি কেমন দেখাচ্ছে: এখানে চিত্র বর্ণনা লিখুন

test.txtউদাহরণে বিটিডব্লিউটির বিষয়বস্তু নিম্নরূপ:

做乜嘢要輸出大楷姐,搞到要加番toUpperCase()去轉番,咁就13byte啦。

(কেন পৃথিবীতে উপরের কেস আউটপুট প্রয়োজন। আমি রূপান্তর যোগ করার জন্য ছিল toUpperCase(), এবং যে খরচ 13 বাইট।)


0

সি #। নেট ফ্রেমওয়ার্ক 4.7.2 - 235 213 203 191 175 140 বাইট

এটি অনলাইন চেষ্টা করুন!

using System.IO;class P{static void Main(string[]a){foreach(var b in File.ReadAllBytes(a[0])){System.Console.Write(b.ToString("X2")+" ");}}}

using System;
using System.IO;

namespace hexdump
{
    class Program
    {
        static void Main(string[] args)
        {
            // Read the bytes of the file
            byte[] bytes = File.ReadAllBytes(args[0]);

            // Loop through all the bytes and show them
            foreach (byte b in bytes)
            {
                // Show the byte converted to hexadecimal
                Console.Write(b.ToString("X2") + " ");
            }
        }
    }
}

1
আমি মনে করি যে নিম্নলিখিতটি কিছু বাইট সংরক্ষণ করবে (এখন 181 আমি মনে করি): System.IO; ক্লাস পি {স্ট্যাটিক শূন্যস্থান মেইন (স্ট্রিং [] ক) ব্যবহার করে - যদি (a.Length> 0 & ফাইল.এক্সিস্টস (একটি [0]) ) {ফোরচ (ফাইলের মধ্যে var বি। রিডআলবাইটস (এ [0]))। সিস্টেম.কনসোল.উইরাইট ($ "{বি। টোস্ট্রিং (" এক্স 2 ")}");}}}}
পম্যানএস

@ম্যানস আপনি যদি কিছু সাদা জায়গা সরিয়ে ফেলেন তবে তা 175
ফেসবুক 42

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.