• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 20:18
CEST 02:18
KST 09:18
  • Home
  • Forum
  • Calendar
  • Streams
  • Liquipedia
  • Features
  • Store
  • EPT
  • TL+
  • StarCraft 2
  • Brood War
  • Smash
  • Heroes
  • Counter-Strike
  • Overwatch
  • Liquibet
  • Fantasy StarCraft
  • TLPD
  • StarCraft 2
  • Brood War
  • Blogs
Forum Sidebar
Events/Features
News
Featured News
Team TLMC #5 - Finalists & Open Tournaments0[ASL20] Ro16 Preview Pt2: Turbulence5Classic Games #3: Rogue vs Serral at BlizzCon9[ASL20] Ro16 Preview Pt1: Ascent10Maestros of the Game: Week 1/Play-in Preview12
Community News
Weekly Cups (Sept 8-14): herO & MaxPax split cups3WardiTV TL Team Map Contest #5 Tournaments1SC4ALL $6,000 Open LAN in Philadelphia7Weekly Cups (Sept 1-7): MaxPax rebounds & Clem saga continues29LiuLi Cup - September 2025 Tournaments3
StarCraft 2
General
Team Liquid Map Contest #21 - Presented by Monster Energy #1: Maru - Greatest Players of All Time Weekly Cups (Sept 8-14): herO & MaxPax split cups SpeCial on The Tasteless Podcast Team TLMC #5 - Finalists & Open Tournaments
Tourneys
WardiTV TL Team Map Contest #5 Tournaments Maestros of The Game—$20k event w/ live finals in Paris RSL: Revival, a new crowdfunded tournament series Sparkling Tuna Cup - Weekly Open Tournament SC4ALL $6,000 Open LAN in Philadelphia
Strategy
Custom Maps
External Content
Mutation # 491 Night Drive Mutation # 490 Masters of Midnight Mutation # 489 Bannable Offense Mutation # 488 What Goes Around
Brood War
General
[ASL20] Ro16 Preview Pt2: Turbulence BW General Discussion BGH Auto Balance -> http://bghmmr.eu/ ASL20 General Discussion Playing StarCraft as 2 people on the same network
Tourneys
[IPSL] ISPL Season 1 Winter Qualis and Info! [ASL20] Ro16 Group C Is there English video for group selection for ASL [ASL20] Ro16 Group B
Strategy
Simple Questions, Simple Answers Muta micro map competition Fighting Spirit mining rates [G] Mineral Boosting
Other Games
General Games
Stormgate/Frost Giant Megathread Path of Exile General RTS Discussion Thread Nintendo Switch Thread Borderlands 3
Dota 2
Official 'what is Dota anymore' discussion LiquidDota to reintegrate into TL.net
League of Legends
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Heroes of StarCraft mini-set
TL Mafia
TL Mafia Community Thread
Community
General
US Politics Mega-thread Things Aren’t Peaceful in Palestine Canadian Politics Mega-thread Russo-Ukrainian War Thread The Big Programming Thread
Fan Clubs
The Happy Fan Club!
Media & Entertainment
Movie Discussion! [Manga] One Piece Anime Discussion Thread
Sports
2024 - 2026 Football Thread Formula 1 Discussion MLB/Baseball 2023
World Cup 2022
Tech Support
Linksys AE2500 USB WIFI keeps disconnecting Computer Build, Upgrade & Buying Resource Thread High temperatures on bridge(s)
TL Community
BarCraft in Tokyo Japan for ASL Season5 Final The Automated Ban List
Blogs
The Personality of a Spender…
TrAiDoS
A very expensive lesson on ma…
Garnet
hello world
radishsoup
Lemme tell you a thing o…
JoinTheRain
RTS Design in Hypercoven
a11
Evil Gacha Games and the…
ffswowsucks
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1471 users

Java help

Blogs > shmay
Post a Reply
shmay
Profile Blog Joined July 2004
United States1091 Posts
Last Edited: 2008-03-05 05:06:32
March 05 2008 05:05 GMT
#1
Copied from my Hw:

Write a method with the following signature:

public static String oneByte (int value, int byteNum)

This method take in an integer and return, as a String, the specified byte (0-3, numbered right to left) of value as a hexadecimal number.



My question: what the hell is my teacher asking? What does the 0-3 part mean?

Help! Thank you!

***
pheer
Profile Blog Joined July 2004
5391 Posts
March 05 2008 05:14 GMT
#2
I have no idea what the 0-3 part means, but you can just convert INT -> HEX using the built in functions, then convert that to a string. Maybe the 0-3 part is what makes it more than 2 lines of work?
Moderator
Raithed
Profile Blog Joined May 2007
China7078 Posts
March 05 2008 05:18 GMT
#3
0123 ?
AcrossFiveJulys
Profile Blog Joined September 2005
United States3612 Posts
March 05 2008 05:19 GMT
#4
One byte = 1 character
strings are basically a bunch of characters...

if you have something like this

word

'd' is byte 0, 'r' is byte 1, 'o' is byte 2, and 'w' is byte 3 by your teacher's convention.

so the first part is just figuring out how to locate the part of the string that the byte# corresponds to. youll have to do something like

public static String oneByte (int value, int byteNum) {
// convert integer into string
String s = ...

// get byte index
int byteIndex = (s.length() - byteNum) - 1;

// extract the character
char c = s.substring(byteIndex);

// convert into hex
int h = ...

return h;

}

i dont remember java syntax too well, been a couple years. hope this helps.
shmay
Profile Blog Joined July 2004
United States1091 Posts
Last Edited: 2008-03-05 05:27:51
March 05 2008 05:21 GMT
#5
On March 05 2008 14:14 pheer wrote:
I have no idea what the 0-3 part means, but you can just convert INT -> HEX using the built in functions, then convert that to a string. Maybe the 0-3 part is what makes it more than 2 lines of work?


We can't use stuff from the API for the hex conversion
SonuvBob
Profile Blog Joined October 2006
Aiur21549 Posts
March 05 2008 05:23 GMT
#6
On March 05 2008 14:14 pheer wrote:
I have no idea what the 0-3 part means, but you can just convert INT -> HEX using the built in functions, then convert that to a string. Maybe the 0-3 part is what makes it more than 2 lines of work?

32 bit int = 4 bytes. :p
Administrator
shmay
Profile Blog Joined July 2004
United States1091 Posts
March 05 2008 05:29 GMT
#7
oh I see. cool, thank you guys, especially across
AcrossFiveJulys
Profile Blog Joined September 2005
United States3612 Posts
March 05 2008 05:33 GMT
#8
in my post i forgot to mention that you need to turn the hex value you obtain into a string before you return it.
Macavenger
Profile Blog Joined January 2008
United States1132 Posts
Last Edited: 2008-03-05 05:57:56
March 05 2008 05:55 GMT
#9
Across is returning an int when the method signature asks for a String, though. I assume the return should be a string of either 2 characters (giving the integer value of the byte in hex) or 8 characters (giving the byte in binary). Doing it in binary is more work, although much cleaner in converting from int to String, at least for the first method that jumps out at me. I'll try to write out how I would do this for binary, since it's easier to write out:

public static String oneByte (int value, int byteNum) {

// initialize a string to store the return value in
String result = "";

// This division on value will eliminate all bytes lower than byteNum
// Equivalent to dividing a decimal number by 10^3 to get rid of the last 3 digits, for example
value = value / (256 ^ byteNum);

for ( int i = 1; i > 8; i++) {

// Taking the mod 2 of value gives us the value of the last digit
// Since mod 2 returns either a 1 or a 0, we don't need anything else in the if statement,
// but doing value % 2 == 1 might be a bit more readable
if value % 2 {

// We're finding bits from right to left, so when we get a new one,
// it needs to be put at the front of the string
result = "1" + result;
}

else {

result = "0" + result;

}

// Now that we've determined the rightmost remaining bit, we need to get rid of it to find the rest
value = value / 2;

}

// Now we've found all 8 bits and stored them in proper order, so return
return result;

}

Hopefully that syntax isn't too far off, I haven't coded in java in a while. Also hope you can read that, WTB [code] tags on TL so I can format things.

Doing it Hex would give a cleaner result, just 2 characters 0-f. The method is basically the same, except you take the modulo 16 and divide by 16 twice, and have to deal with sorting 15 = f, 10 = a etc. into the string. A big ugly case statement is the easiest way I can think of to do that off the top of my head, and I didn't want to write then, hence why I did it in binary.

Edit: looking at what you said about the API limitation again, what across did is probably fine once you convert it to a string. I read it originally as saying you couldn't convert between types for some reason, which I don't think is right now. Thus doing it via string and not my crazy math way is probably fine, but at least I had fun working this out.
AcrossFiveJulys
Profile Blog Joined September 2005
United States3612 Posts
March 05 2008 06:49 GMT
#10
lol MacAvenger overrrrrkillllll

I suppose that's a faster method than mine though since you are doing it in binary and not making API calls to convert back and forth between types.
azndsh
Profile Blog Joined August 2006
United States4447 Posts
Last Edited: 2008-03-05 07:11:50
March 05 2008 07:10 GMT
#11
I don't think anyone has posted the correct solution/interpretation.

An int is 32 bits, or 4 bytes. This can be expressed as 32 digits in binary or 8 digits in hexadecimal. For example

int a = 13371337 would be

00000000 11001100 00000111 11001001
in binary as split into 4 bytes.

or

00 CC 07 C9
in hexadecimal as split into 4 bytes

oneByte (a, 0) would return "C9"
oneByte (a, 1) would return "07"
etc.

That's what the problem is asking. It's pretty much your job to figure out how to actually calculate those return values.
shmay
Profile Blog Joined July 2004
United States1091 Posts
Last Edited: 2008-03-05 07:29:57
March 05 2008 07:21 GMT
#12
yeah, you're correct azndsh. i learned that soon after i tried implementing it. that's what i needed. ty
Macavenger
Profile Blog Joined January 2008
United States1132 Posts
March 05 2008 07:55 GMT
#13
azndsh, that's the interpretation I was working off when I designed mine. I'm pretty sure that's what both Across and I are doing, unless you see something in our code we don't Well, my code is returning the binary value "11001001" instead of "C9", but unless it specifies in the problem statement whether to return in binary or hex either should be valid.
azndsh
Profile Blog Joined August 2006
United States4447 Posts
March 05 2008 09:16 GMT
#14
the problem specifies the hex value, and also, it's probably best not to post the actual solution, but to let the person figure out the actual programming part
shmay
Profile Blog Joined July 2004
United States1091 Posts
March 05 2008 09:48 GMT
#15
Any tips on how to go about this? I converted the int to a 4 byte array, but I have no idea how to manually convert one of those bytes to hex.
shmay
Profile Blog Joined July 2004
United States1091 Posts
Last Edited: 2008-03-05 11:06:12
March 05 2008 10:00 GMT
#16
cancel the byte array, now have this:

value = ((value << (8*byteNum)) >>> 24) & 0x000000ff;

still open for hints on the hex conversion

edit: nm, I think i have it. don't worry.

got it
Cambium
Profile Blog Joined June 2004
United States16368 Posts
March 05 2008 19:29 GMT
#17
This makes perfect sense...

Since an int is 32 bits, it has 4 bytes (hence 0 - 3).

Numbered right to left means.... 3-2-1-0.

It basically asks you to take a chunk of the integer and output it in hex.
When you want something, all the universe conspires in helping you to achieve it.
Cambium
Profile Blog Joined June 2004
United States16368 Posts
Last Edited: 2008-03-05 19:46:42
March 05 2008 19:43 GMT
#18
I got held up answering some email, here's the solution... I think (I'm not gonna run it).

Pretty easy...

public static String oneByte (int value, int byteNum)
{
String binaryCode = Integer.toBinaryString(value);
int returnValue = Integer.parseInt( binaryCode.substring( (3 - byteNum) * 8, (3 - byteNum) * 8 + 7 ), 2 );
return Integer.toHexString( returnValue );
}
When you want something, all the universe conspires in helping you to achieve it.
FreeZEternal
Profile Joined January 2003
Korea (South)3396 Posts
March 05 2008 21:08 GMT
#19
public static String oneByte(int value, int byteNum){
byte[] byteHolder = new byte[4];
//Little-indian.
byteHolder[3] = (byte)((value >> 24) & 0xff);
byteHolder[2] = (byte)((value >> 16) & 0xff);
byteHolder[1] = (byte)((value >> 8) & 0xff);
byteHolder[0] = (byte)(value & 0xff);
return "0x" + Integer.toHexString(byteHolder[byteNum] & 0xff);

}
Please log in or register to reply.
Live Events Refresh
OSC
00:00
Mid Season Playoffs #2
CranKy Ducklings27
Liquipedia
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
NeuroSwarm 241
ROOTCatZ 55
SpeCial 52
CosmosSc2 43
RuFF_SC2 10
Vindicta 9
StarCraft: Brood War
Artosis 773
ggaemo 77
sSak 18
Counter-Strike
fl0m1199
Stewie2K385
Super Smash Bros
C9.Mang0195
Liquid`Ken79
Other Games
summit1g4498
Grubby3399
shahzam878
JimRising 364
ToD181
SortOf124
Maynarde113
Trikslyr71
Nathanias19
Organizations
Other Games
gamesdonequick776
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 17 non-featured ]
StarCraft 2
• davetesta30
• OhrlRock 1
• Kozan
• Migwel
• AfreecaTV YouTube
• sooper7s
• intothetv
• IndyKCrew
• LaughNgamezSOOP
StarCraft: Brood War
• blackmanpl 26
• STPLYoutube
• ZZZeroYoutube
• BSLYoutube
Dota 2
• masondota22104
• WagamamaTV496
• Ler46
Other Games
• Scarra998
Upcoming Events
Sparkling Tuna Cup
9h 42m
Afreeca Starleague
9h 42m
Light vs Speed
Larva vs Soma
2v2
10h 42m
PiGosaur Monday
23h 42m
LiuLi Cup
1d 10h
RSL Revival
2 days
Maru vs Reynor
Cure vs TriGGeR
The PondCast
2 days
RSL Revival
3 days
Zoun vs Classic
Korean StarCraft League
4 days
BSL Open LAN 2025 - War…
4 days
[ Show More ]
RSL Revival
4 days
BSL Open LAN 2025 - War…
5 days
RSL Revival
5 days
Online Event
5 days
Wardi Open
6 days
Liquipedia Results

Completed

Proleague 2025-09-10
Chzzk MurlocKing SC1 vs SC2 Cup #2
HCC Europe

Ongoing

BSL 20 Team Wars
KCM Race Survival 2025 Season 3
BSL 21 Points
ASL Season 20
CSL 2025 AUTUMN (S18)
LASL Season 20
RSL Revival: Season 2
Maestros of the Game
FISSURE Playground #2
BLAST Open Fall 2025
BLAST Open Fall Qual
Esports World Cup 2025
BLAST Bounty Fall 2025
BLAST Bounty Fall Qual
IEM Cologne 2025
FISSURE Playground #1

Upcoming

2025 Chongqing Offline CUP
BSL World Championship of Poland 2025
IPSL Winter 2025-26
BSL Season 21
SC4ALL: Brood War
BSL 21 Team A
Stellar Fest
SC4ALL: StarCraft II
EC S1
ESL Impact League Season 8
SL Budapest Major 2025
BLAST Rivals Fall 2025
IEM Chengdu 2025
PGL Masters Bucharest 2025
MESA Nomadic Masters Fall
Thunderpick World Champ.
CS Asia Championships 2025
ESL Pro League S22
StarSeries Fall 2025
TLPD

1. ByuN
2. TY
3. Dark
4. Solar
5. Stats
6. Nerchio
7. sOs
8. soO
9. INnoVation
10. Elazer
1. Rain
2. Flash
3. EffOrt
4. Last
5. Bisu
6. Soulkey
7. Mini
8. Sharp
Sidebar Settings...

Advertising | Privacy Policy | Terms Of Use | Contact Us

Original banner artwork: Jim Warren
The contents of this webpage are copyright © 2025 TLnet. All Rights Reserved.